{"id":13610594,"url":"https://github.com/Lartu/ldpl","last_synced_at":"2025-04-12T22:34:23.029Z","repository":{"id":34549918,"uuid":"167591877","full_name":"Lartu/ldpl","owner":"Lartu","description":"COBOL-like programming language that compiles to C++. With serious dinosaurs with neckties and briefcases 🦕💼","archived":false,"fork":false,"pushed_at":"2024-10-24T05:39:31.000Z","size":13712,"stargazers_count":160,"open_issues_count":0,"forks_count":24,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-11-07T16:44:18.939Z","etag":null,"topics":["cobol","compiled","compiler","dinosaur","dinosaurs","imperative-programming","imperative-programming-language","ldpl","programming-language","robust","robustness","static","static-typed","structured","structured-programming","systems-language","systems-programming","typed"],"latest_commit_sha":null,"homepage":"https://www.ldpl-lang.org/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lartu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-25T18:12:34.000Z","updated_at":"2024-11-03T00:18:52.000Z","dependencies_parsed_at":"2024-06-13T09:48:52.657Z","dependency_job_id":"29d1a4c2-616f-47f7-b8f7-eb015984f526","html_url":"https://github.com/Lartu/ldpl","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lartu%2Fldpl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lartu%2Fldpl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lartu%2Fldpl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lartu%2Fldpl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lartu","download_url":"https://codeload.github.com/Lartu/ldpl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248642308,"owners_count":21138350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cobol","compiled","compiler","dinosaur","dinosaurs","imperative-programming","imperative-programming-language","ldpl","programming-language","robust","robustness","static","static-typed","structured","structured-programming","systems-language","systems-programming","typed"],"created_at":"2024-08-01T19:01:46.159Z","updated_at":"2025-04-12T22:34:23.020Z","avatar_url":"https://github.com/Lartu.png","language":"C++","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Lartu/ldpl/blob/master/images/ldpl-4.0-logo.png\"\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003cimg src=\"https://img.shields.io/badge/release-5.1.0_'Groovy_Gualicho'-green.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/development-5.2.0-yellow.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-Apache_2.0-orange\"\u003e\n  \u003c!--\u003cimg src=\"https://github.com/Lartu/ldpl/actions/workflows/clang-format-check.yml/badge.svg\"\u003e--\u003e\n  \u003ca href=\"t.me/ldpllang\"\u003e\u003cimg src=\"https://img.shields.io/badge/-LDPL_on_Telegram-red?color=blue\u0026logo=telegram\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n[**LDPL**](https://www.ldpl-lang.org/) is a powerful, general-purpose compiled programming language designed\nfrom the ground up to be excessively **expressive**, **readable**, **fast** and **easy** to learn.\nIt mimics plain English, inspired by the best aspects of older programming languages like COBOL and FoxPRO.\nIt even supports UTF-8 out of the box.\n\nThis repository contains the source code and [releases](https://github.com/Lartu/ldpl/releases) of the LDPL compiler.\n\n### Example Code\n\n```ruby\n# Hello There Example\nDATA: \nname IS TEXT\ni IS NUMBER\n  \nPROCEDURE: \nDISPLAY \"Hello there, what's your name?\"\nACCEPT name\nFOR i FROM 0 TO 10 STEP 1 DO\n    DISPLAY \"你好, \" name \"!\" CRLF\nREPEAT\n```\n\nThis code greets the user and asks them to enter their name, then it greets them in Chinese, ten times. Easy as pie and super legible.\n\nLDPL supports multiple datatypes and programming patterns. It is a full-fledged programming language.\nCheck the [documentation](https://docs.ldpl-lang.org) for more information, and the [official website](https://www.ldpl-lang.org/) \nto see other examples, including a BF interpreter and Bellman-Ford's Algorithm!\n\n## LDPL Philosophy\n\nLDPL is a language designed to be easy to understand, learn, write, and use. We believe coding should be like that. Compiling code should be effortless and straightforward: a single, flagless command should be enough to compile any source. Every statement in the language should perform one, and only one, function, independent of the context. The compiler should handle complex, low-level tasks like encoding, sockets, floating-point number comparison, etc., transparently to the user. Difficult things shouldn’t feel difficult.\n\nWe understand that this philosophy may result in longer source code, more verbose statements, and additional steps to reach a solution, but it aims to make coding in LDPL easier and more enjoyable than in other languages.\n\nAs one user once said:\n\n\u003e*\"Usually when I'm programming, I feel like I'm in a big fancy jet and there's a lot of turbulence and it's not going well but then all of a sudden it's smooth air again and the drink cart comes along and I get a ginger ale and it's great. But with LDPL, I feel like I'm a cub scout out in the woods with a box of matches and a hatchet and my Scout's Handbook (the LDPL Docs) just exploring and figuring it out as I go. Whenever I run into a problem I just check my handbook and, sure enough, there's a solution right there waiting for me!\"*\n\nWe want LDPL to be a language you’ll love — not because it lets you do many things in one line or because it’s modern, but because it’s designed to stay by your side and reassure you that everything will be okay, even when things look rough.\n\n## Installing LDPL\n\nTo install LDPL, clone this repository, navigate to the cloned directory, open a terminal, and run `make` followed by `make install`. That's it!\n\nYou can also optionally run `make man` to re-build the man documentation (PHP is required for this).\nThis process will install LDPL and its documentation (`man ldpl`) on your system.\nLDPL only requires **C++11** to compile and run.\n\n### Alternative Installation Methods\n\nBear in mind that these other installation methods may install an outdated version of LDPL, as they are maintained by external contributors.\nMake sure that the version you are about to install matches the last LDPL release.\n\n* **🍺 Homebrew**: If you prefer [Homebrew](https://brew.sh), you can install LDPL by running `brew install ldpl`.\n* **🐦 Snap**: If you prefer [Snap](https://snapcraft.io/), you can install LDPL by running `snap install ldpl-lang`.\n\n\n## Learning LDPL and Read the Docs\n\n![Learning Dinosaur](https://github.com/Lartu/ldpl/blob/master/images/reference-logo.png)\n\nIf you want to learn how to code in LDPL, there is a brief tutorial available at [https://learnxinyminutes.com/docs/ldpl](https://learnxinyminutes.com/docs/ldpl). Additionally, be sure to check out the examples on the official LDPL website.\n\n[The **LDPL Documentation** is available here](https://docs.ldpl-lang.org/).\nThe documentation is also uploaded to the [docs](docs) folder of this repository and can be read and modified from there.\n\nThe LDPL documentation can also be found on your system using `man ldpl` when you install LDPL using `make install`.\nThe man page is also available in the [man](/man) folder of this repository.\n\n## How to use this compiler\n\nTo use the compiler, you must have a C++ compiler installed on your system and ensure it is accessible as `c++` in your PATH.\nThe LDPL compiler translates LDPL code into C++ code, making this a necessary requirement for it to function.\n\nOnce the compiler is set up, write some LDPL source code — for example, `source.ldpl`.\nThen, compile the source code using `ldpl source.ldpl`. The compiled executable binary will be saved as `source-bin`.\nFor more information about the compiler, run `ldpl -h` or refer to the [docs](https://docs.ldpl-lang.org/#the-ldpl-compiler).\n\n### C++ extensions\n\nLDPL supports extensions written in C++. Extensions are `.cpp`, `.o`, or `.a` files that can be imported into your program.\n\nFor a guide on writing and building C++ extensions, refer to the [LDPL Docs](https://docs.ldpl-lang.org/cppext/).\n\n## How can I contribute to LDPL?\n\n![Contributing Dinosaur](https://github.com/Lartu/ldpl/blob/master/images/tutorial-logo.png)\n\nThere are many ways to contribute to the LDPL project.\nYou can fix bugs, open issues, write examples, develop software in LDPL, and more.\nCheck the [contribution guide](https://www.ldpl-lang.org/contribute.html) for details.\nAlmost any contribution is welcome — even simply telling your friends about LDPL is an easy and valuable way to help.\n\nContributors are expected to adhere to the [LDPL Code of Conduct](https://www.ldpl-lang.org/conduct.html). In short: be nice to everyone.\n\n### Community\n\nIf you’d like to chat with us, join the LDPL community in the [LDPL Programming Language **Telegram** Group](https://t.me/ldpllang)!\nThere's also [r/LDPL](https://reddit.com/r/LDPL) on **Reddit**.\n\nYou are also welcome to create new LDPL channels on any other platform.\n\n## Merchandise\n\nDue to popular demand, [LDPL merchandise is available](https://www.teepublic.com/user/lartu). We’ve partnered with TeePublic to offer a variety of items, from shirts and mousepads to coffee mugs.\n\n## Getting Help\n\nf you have any questions about the LDPL project, feel free to submit an issue in this repository, visit the [LDPL website](https://www.ldpl-lang.org) or join the community channels mentioned in the previous section. Remember, there are no dumb questions — just ask!\n\n## 📜 License\n\nThe LDPL Compiler is distributed under the Apache 2.0 License.\nAll LDPL Dinosaur logos were created by [Lartu](https://github.com/Lartu) and are released under the Creative Commons Attribution 4.0 International (CC BY 4.0) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLartu%2Fldpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLartu%2Fldpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLartu%2Fldpl/lists"}