LDPL

LDPL (or "Lartu's Definitive Programming Language") is a compiled English-like language designed from the ground up to be excessively expressive, fast, readable and easy to learn. It is imperative and procedural. It mimics English in the likeness of older languages like COBOL. It's highly portable and runs on a plethora of different architectures and operating systems including AMD-64, ARMv8 and PowerPC Linux and Mac OS X. It even supports UTF-8 out of the box.
==History==
The LDPL project was initially started by Martín del Río in 2018 with a group of colleagues, but after a few days of design by committee, and due to lack of interest, the project was abandoned. Martín decided he wanted to write a programming language and so picked up the project and created a syntax loosely based on that of COBOL. The original iteration of LDPL, Mauifish was released in the end of that year.
In 2019 Martín realized the language was lacking any sort of documentation and thus, in an effort to both document the language and standardize it, he wrote the LDPL 19 Standard, giving birth to LDPL as it is today.
LDPL was originally is a relatively slow interpreted language with no scoping, objects or functions and with data structures limited to just numbers, strings and lists of these types called VECTORs. In an effort to make the language more usable, however, the compiler was modified to transpilation LDPL code to C++. It thus became a compiled language.
==Examples==
===Hello, World!===
 PROCEDURE:
 DISPLAY "Hello World!" CRLF
Just like COBOL. The upper case characters are optional
===Every even number from 0 to 20===
This program prints out all the even numbers from 20 to 0:
 DATA:
 it IS NUMBER
 mod IS NUMBER
 
 PROCEDURE:
 STORE 20 IN it
 WHILE it IS GREATER THAN 0 DO
 MODULO it BY 2 IN mod
 IF mod IS EQUAL TO 0 THEN
 DISPLAY it " is even!" CRLF
 END IF
 SUBTRACT 1 FROM it IN it
 REPEAT
===String Splitting===
This program takes a string and a delimiter and splits the string using the given delimiter:
DATA:
explode/words is text vector
explode/index is number
explode/string is text
explode/length is number
explode/stringlength is number
explode/current-token is text
explode/char is text
explode/separator is text
i is number
 
PROCEDURE:
# Ask for a sentence
display "Enter a sentence: "
accept explode/string
# Declare explode Subprocedure
# Splits a text into a text vector by a certain delimiter
# Input parameters:
# - explode/string: the string to explode (destroyed)
# - explode/separator: the character used to separate the string (preserved)
# Output parameters:
# - explode/words: vector of splitted words
# - explode/length: length of explode/words
sub-procedure explode
 join explode/string and explode/separator in explode/string
 store length of explode/string in explode/stringlength
 store 0 in explode/index
 store 0 in explode/length
 store "" in explode/current-token
 while explode/index is less than explode/stringlength do
 get character at explode/index from explode/string in explode/char
 if explode/char is equal to explode/separator then
 store explode/current-token in explode/words:explode/length
 add explode/length and 1 in explode/length
 store "" in explode/current-token
 else
 join explode/current-token and explode/char in explode/current-token
 end if
 add explode/index and 1 in explode/index
 repeat
 subtract 1 from explode/length in explode/length
end sub-procedure
# Separate the entered string
store " " in explode/separator
call sub-procedure explode
while i is less than or equal to explode/length do
 display explode/words:i crlf
 add 1 and i in i
repeat
==External resources==
* LDPL Official Website contains examples, a guide and the standard documentation.
* r/LDPL official language subreddit.