{{language
|exec=machine
|site=https://OsmosianPlainEnglishProgramming.blog/
|gc=no
|parampass=reference
|strength=strong
|express=explicit
|checking=static
|tags=plainenglish
|hopl=no
|LCT=yes
}}
{{language programming paradigm|imperative}}
{{language programming paradigm|procedural}}
{{Compiler}}

'''Plain English''' is a programming language written [https://www.quora.com/In-procedural-programming-how-do-you-plan-your-code-without-UML/answer/Gerry-Rzeppa during the winter of 2005-2006] that:
* Has keywords like A, AN, and THE.
* Lets you code what you're thinking.
* Can compile itself in 3 seconds.
<br/>
Plain English can be run from within its Integrated Development Environment (IDE) (see "Complete IDE download" below)
or compiled to a self-contained Microsoft Windows .exe file.

Here is a list of what you must understand from the start:

'''Fully Implemented in Itself:''' It is a single executable, with one or more human readable libraries (also written in Plain English Programming Language) which produces a new stand alone .exe with your new program in it. 
The project originally started as an IDE with a built-in compiler.
Over time, this evolved into a separate effort, resulting in a standalone compiler developed as an independent project.
Today, the ecosystem consists of two distinct components:
an IDE that includes its own integrated compiler, and a separate command-line compiler, each maintained independently.
There is NO complete source code in another language; the system was bootstrapped in a Pascal-like language (which is no longer available) and was later re-written entirely in Plain English.
It is "Machine Code" Low Level: The bootstrap is very basic, only able to copy itself and add raw machine code in Intel hex format, make calls to the operating system, e.g.
<syntaxhighlight lang="text"> 
Call "kernel32.dll" "SetFilePointer" with 
  the file [hFile]
  and 0 [lDistanceToMove]
  and 0 [lpDistanceToMoveHigh]
  and 2 [file_end / dwMoveMethod] 
  returning a result number.
</syntaxhighlight>
and call other DLLs e.g.
<syntaxhighlight lang="text"> 
Call "hawk.dll" "Servo_SetServos" with 1 and the front knob's setting and the side knob's setting and 0 and 0 and 0 and 0 and 0 and 0 returning a number.
</syntaxhighlight>
and it can do a few other things.

'''It is "English" High Level:''' From those humble beginnings, springs a language that can do things like:

<syntaxhighlight lang="text"> 
To run:
  Start up.
  Clear the screen.
  Use medium letters. 
  Use the fat pen.
  Pick a really dark color.
  Loop.
    Start in the center of the screen.
    Turn left 1/32 of the way.
    Turn right. 
    Move 2 inches. 
    Turn left.
    Write "HELLO WORLD".
    Refresh the screen.
    Lighten the current color about 20 percent.
    Add 1 to a count. 
    If the count is 32, break.
  Repeat.
  Wait for the escape key.
  Shut down.
</syntaxhighlight>

Note that standard English punctuation, word types, and sentence structure are all used. 
There is a trend to make each sentence is own paragraph, but that is not required.

'''Compact:''' The entire download is less than a megabyte in size. 
It's a complete development environment, including a unique interface, a simplified file manager, an elegant text editor, a handy hexadecimal dumper, a native-code-generating compiler/linker, a library of general-purpose types, variables and routines, and even a wysiwyg page layout facility (that we used to produce the documentation). 
It is written entirely in Plain English. 
The source code (about 25,000 sentences) is included in the download.
All the commands are in the alphabetic menus along the top of the IDE. E.g. to close a folder, after clicking on a drive letter and folder, click "C" and then "Close", or use the Alt- hot-keys like Alt-C. 

'''Types'''
Primitive types like number, etc.. are supported, as well as more complex types like "thing" which is a sort of object or list, and any number of user-defined types. Note however that "number" is a 32 bit integer and is /directly/ mapped to the CPU. E.g. addition is literally this in the language:

<syntaxhighlight lang="text"> 
To add a number to another number:
Intel $8B85080000008B008B9D0C0000000103.
</syntaxhighlight>
And yes, that is 80x86 machine code in Intel hex format. It decompiles to

<syntaxhighlight lang="asm">
mov eax, [ebp+8]	; $8B8508000000 -> Load the value at (EBP + 8) into EAX (1st function argument)
mov eax, [eax]  	; $8B00 -> Dereference EAX (load the value from the address stored in EAX)
mov ebx, [ebp+12]	; $8B9D0C000000-> Load the value at (EBP + 12) into EBX (2nd function argument)
add [ebx],eax     	; $0103 -> Add EAX to the value stored at the address in EBX
</syntaxhighlight>

So the language has stacked pointers (all parameters are passed by reference) to the two numbers via a number to another number and then it calls this code which gets the first number, and adds it to the second. Hopefully this example shows how high level and low level Plain English is at the same time.

"The whole system is built on just two, compiler-defined types: BYTE and RECORD. All the other types are constructed from these, and are defined in the "Noodle" library {a file, loaded by the compiler}. The idea was to put as much as possible in the library, and as little as possible in the compiler. The compiler is aware of a few other types -- like NUMBER, STRING, SUBSTRING, THING -- mostly for memory management purposes, but all the other the type definitions are built up from BYTE and RECORD in the library." These are extended to support BYTE, WYRD, POINTER, FLAG, and RECORD.

Subset types give new names to existing types: e.g.
<syntaxhighlight lang="text"> 
A count is a number.
A name is a string.
</syntaxhighlight>

Constants or "literals" are also possible:

<syntaxhighlight lang="text"> 
The copyright byte is a byte equal to 169.
</syntaxhighlight>

As are conversion types:

<syntaxhighlight lang="text"> 
A foot is 12 inches.
An hour is 60 minutes.
</syntaxhighlight>

'''Variables'''
Once a type has been declared, we can allocate a global, outside a routine:

<syntaxhighlight lang="text"> 
The great foo is a number.
</syntaxhighlight>

then values may be assigned, inside a routine

<syntaxhighlight lang="text"> 
Put 0 into the great foo.
</syntaxhighlight>

or be passed by address...

<syntaxhighlight lang="text"> 
Increment the great foo.
</syntaxhighlight>

as a parameter to a routine.

<syntaxhighlight lang="text"> 
To increment a number:
Add 1 to the number.
</syntaxhighlight>

Note that variables can have multi-word names including spaces.

Local variables, with scope in their own routine only, are defined so simply they can be hard to see. Basically, you assign a value using an indefinite article (A, AN, ANOTHER, or SOME) in a statement. For example:
Put 101 into some other course number.
The local variable name there is "other course number" but "other course" also works as a "nickname". The variable's type is number. e.g.
Increment the other course.
will match To increment a number:

"All parameters passed to Plain English routines are passed by reference, though parameters passed to DLLs use the C convention (the order is reversed and "simple" types are passed by value)."

'''Routines'''
Routines are defined by headers which terminate in a colon, followed by the body of the routine. Multiple headers can be provided in front of one routine, separated by semicolons:

<syntaxhighlight lang="text"> 
To add a number to a count;
To increment a number by a count:
</syntaxhighlight>

The language parses these into Monikettes: (1) add (2) [number] (3) in/into/to (4) [count] which, taken together make up the routines Moniker: add [number] in/into/to [count]

Matching procedure definitions to procedure calls is done in stages.

1. Higher-level types are reduced to compatible lower-level types, as necessary; and
2. Certain less-essential words are considered equivalent.

For example, the compiler will match this imperative sentence: Write the first name using the blue pen. with this routine header To write a string with a color: even though the source types "name" and "pen" are different (but compatible) with the target types "string" and "color", and even though the source preposition "using" is different than the target preposition "with".

Unless, of course, a more exact match is available, such as:
To write a name from/given/with/using a pen:
To write a name from/given/with/using a color:
To write a string from/given/with/using a pen:

Type reductions proceed, recursively, from left to right, until a match is found (or all combinations have failed, which results in a compile-time error).

'''Decider:''' A type of routine which helps TO DECIDE IF something: by always returning SAY YES or SAY NO. The something will usually include ARE, BE, CAN, COULD, DO, DOES, IS, MAY, SHOULD, WAS, WILL, or WOULD. e.g.

<syntaxhighlight lang="text"> 
To decide if a number is greater than another number:
  If the first number is greater than the second number, say yes.
  Say no.
</syntaxhighlight>

'''Function:''' A routine that extracts, calculates, or otherwise derives a value from a passed parameter. Function headers take this form:

<syntaxhighlight lang="text"> 
TO PUT something's something INTO a temporary variable:
</syntaxhighlight>

Unlike procedures (which are called via imperative sentences) and deciders (which are implicitly called in the condition part of IF statements), functions are not usually called directly. Instead, the "something's something" is used as if it was a field in a record. Like a "box's center", which you won't find in the "box" record, because it is calculated by a function on demand.

'''Statements'''
From the instruction manual (see link below):

(1)  The compiler really only understand five kinds of sentences:
(a)   Type definitions, which always start with A, AN, or SOME;
(b)   Global variable definitions, which always start with THE;
(c)   Routine headers, which always start with TO, which can contain:
(d)     Conditional statements, which always start with IF; and
(e)     Imperative statements, which start with anything else.

(2) I treat as a name (that is, a variable, argument, parameter or a type) anything after A, AN, ANOTHER, SOME, or THE, up to:

(a) any simple verb, like IS, ARE, CAN, or DO, or
(b) any conjunction, like AND or OR, or
(c) any preposition, like OVER, UNDER, AROUND, or THRU, or
(d) any literal, like 123 or "Hello, World!", or
(e) any punctuation mark.

(3) I consider almost all other words to be just words, except for:

(a) infix operators: PLUS, MINUS, TIMES, DIVIDED BY and THEN;
(b) special definition words: CALLED and EQUAL; and
(c) reserved imperatives: LOOP, BREAK, EXIT, REPEAT, and SAY.

The noodle built into Plain English is simply not useful enough by itself, and therefore libraries were created to assist in writing Rosetta Code tasks in Plain English.

See also:
https://github.com/Folds/english A work in progress to normalize Plain English into a more standard compiler.
For documentation on the language in general, see the instructions.pdf file in the documentation folder. 
The author objects (see the issues)
https://forums.parallax.com/discussion/163792/plain-english-programming a long rambling and unproductive (but educational, so productive in that sense) discussion of Plain English with it's author and proponents of a bare metal processor.

{| class="wikitable"
! No. !! Library name !! No. !! Library name
|-
| 1 || [https://rosettacode.org/wiki/Category:Plain_English-output output] || 2 || [https://rosettacode.org/wiki/Category:Plain_English-things things]
|}

==Citations==
* Home page
** [http://www.osmosian.com/ The Osmosian Order of Plain English Programmers]
* Blog
** [https://OsmosianPlainEnglishProgramming.blog/ The Osmosian Order of Plain English Programmers Welcomes You]
* Manifesto
** [http://www.Osmosian.com/manifesto.pdf The Osmosian Manifesto]
* Documentation
** [http://www.Osmosian.com/instructions.pdf instructions]
** [http://www.Osmosian.com/ebnf LEXICAL BNF]
* Complete IDE Download
** [http://www.Osmosian.com/cal-4700.zip cal-4700.zip]
*** requires Microsoft Windows
* Plain English Compiler (CMD / Command Line)
** [https://github.com/elisson-zlq3x/Plain-English-Compiler GitHub repo]

==Discussion==
* [https://forums.parallax.com/discussion/163792/plain-english-programming Plain English Programming]

==Todo==
[[Reports:Tasks_not_implemented_in_PlainEnglish]]

=Plain English Sources=
[http://osmosian.com/cal-4700.zip IDE]
and [https://github.com/elisson-zlq3x/Plain-English-Compiler Compiler].
==Creators==
* Gerry Rzeppa (Father)  
[https://www.quora.com/profile/Gerry-Rzeppa Quora Profile]  
[https://www.linkedin.com/in/gerry-rzeppa-17b8051b/ LinkedIn Profile]  
[https://twitter.com/gerryrzeppa Twitter Profile]  
[https://github.com/GerryRzeppa GitHub Profile]  
* Dan Rzeppa (Son)
[https://github.com/danrzeppa GitHub Profile]  

==Contributors==
* Elender Góis Gallas (Plain Portuguese Creator)  
[https://www.quora.com/profile/Elender-G%C3%B3is-Gallas-%E3%82%A8%E3%83%AC%E3%83%B3%E3%83%87-%E3%82%AC%E3%83%A9%E3%82%B9 Quora Profile]  
[https://www.linkedin.com/in/elender/ LinkedIn Profile]  
[https://twitter.com/elenderg Twitter Profile]  
[https://github.com/elenderg GitHub Profile]  
* Pablo Cayuela (Plain Spanish Creator)
[https://www.linkedin.com/in/pablo-cayuela-a42b019/ LinkedIn Profile]

==Copyright Owner==
* The Osmosian Order
** [http://www.Osmosian.com/ The Osmosian Order of Plain English Programmers] Brochure
*** [http://www.osmosian.com/manifesto.pdf The Osmosian Manifesto]
** [https://OsmosianPlainEnglishProgramming.blog/ Wordpress Blog] <br />In chronological order:
*** 2018
**** 05
***** 01 [https://OsmosianPlainEnglishProgramming.blog/2018/05/01/a-solution-to-the-fatal-flaw-in-relational-database-systems/ A Solution to the Fatal Flaw in Relational Database Systems]
***** 02 [https://OsmosianPlainEnglishProgramming.blog/2018/05/02/plain-english-programming-fractal-forests/ Fractal Forests]
***** 02 [https://OsmosianPlainEnglishProgramming.blog/2018/05/02/plain-english-programming-is-a-picture-worth-1000-words/ Plain English Programming — Is a Picture Worth 1000 Words?]
***** 03 [https://OsmosianPlainEnglishProgramming.blog/2018/05/03/plain-english-programming-robotics/ Robotics]
***** 03 [https://OsmosianPlainEnglishProgramming.blog/2018/05/03/plain-english-programming-a-wysiwyg-document-editor/ A WYSIWYG Document Editor]
***** 04 [https://OsmosianPlainEnglishProgramming.blog/2018/05/04/plain-english-programming-musings-on-the-a-in-ai/ Musings on the “A” in “AI”]
***** 04 [https://OsmosianPlainEnglishProgramming.blog/2018/05/04/plain-english-programming-a-simple-merge-sort/ Robotics]
***** 05 [https://OsmosianPlainEnglishProgramming.blog/2018/05/05/plain-english-programming-smoothing-polygons/ Plain English Programming — Smoothing Polygons]
***** 05 [https://OsmosianPlainEnglishProgramming.blog/2018/05/05/plain-english-programming-kobayashi-maru-primes/ Kobayashi Maru Primes]
***** 06 [https://OsmosianPlainEnglishProgramming.blog/2018/05/06/plain-english-programming-nested-ifs/ Plain English Programming — Nested IFs]
***** 06 [https://OsmosianPlainEnglishProgramming.blog/2018/05/06/plain-english-programming-the-malevolent-mathemagician/ Plain English Programming — The Malevolent Mathemagician]
***** 07 [https://OsmosianPlainEnglishProgramming.blog/2018/05/07/plain-english-programming-parsing-with-riders/ Parsing with Riders]
***** 07 [https://OsmosianPlainEnglishProgramming.blog/2018/05/07/plain-english-programming-jackson-pollocks-alphabet-soup/ Plain English Programming — Jackson Pollock’s Alphabet Soup]
***** 08 [https://OsmosianPlainEnglishProgramming.blog/2018/05/08/plain-english-programming-random-numbers/ Random Numbers]
***** 08 [https://OsmosianPlainEnglishProgramming.blog/2018/05/08/plain-english-programming-sierpinski-koch/ Sierpinski & Koch]
***** 09 [https://OsmosianPlainEnglishProgramming.blog/2018/05/09/plain-english-programming-the-travelling-salesman/ The Travelling Salesman]
***** 09 [https://OsmosianPlainEnglishProgramming.blog/2018/05/09/plain-english-programming-a-jigsaw-puzzle/ A Jigsaw Puzzle]
***** 10 [https://OsmosianPlainEnglishProgramming.blog/2018/05/10/plain-english-programming-anagrams/ Anagrams]
***** 11 [https://OsmosianPlainEnglishProgramming.blog/2018/05/11/plain-english-programming-the-amazing-multimaze/ The Amazing MultiMaze]
***** 12 [https://OsmosianPlainEnglishProgramming.blog/2018/05/12/plain-english-programming-painting-like-monet/ Painting Like Monet]
***** 13 [https://OsmosianPlainEnglishProgramming.blog/2018/05/13/plain-english-programming-bresenhams-circle-drawing-algorithm/ Bresenham’s Circle Drawing Algorithm]
***** 14 [https://OsmosianPlainEnglishProgramming.blog/2018/05/14/plain-english-programming-hiding-in-plain-sight/ Hiding in Plain Sight]
***** 14 [https://OsmosianPlainEnglishProgramming.blog/2018/05/14/plain-english-programming-sudoku-solver/ Sudoku Solver]
***** 15 [https://OsmosianPlainEnglishProgramming.blog/2018/05/15/plain-english-programming-teaching-kids/ Teaching Kids to Program]
***** 16 [https://OsmosianPlainEnglishProgramming.blog/2018/05/16/the-journey-begins/ Plain English Programming]
==<abbr title="Integrated Development Environment">IDE</abbr> including Compiler==
===Creator supplied===
*[http://www.osmosian.com/cal-3040.zip cal-3040] 2006/08/14
**[http://www.osmosian.com/ebnf EBNF]
**[http://www.osmosian.com/instructions.pdf instructions]
*[http://www.osmosian.com/cal-4700.zip cal-4700] 2017/01/27

===GitHub===
*[https://GitHub.com/GerryRzeppa/osmosian /GerryRzeppa/osmosian] cal-3040
*[https://GitHub.com/Folds/osmosian /Folds/osmosian] cal-3040 (Unauthorized)
*[https://GitHub.com/elenderg/Portugues-Puro /elenderg/Portugues-Puro] cal-4700 Translated to Portuguese

==Forums==
===[https://www.AnandTech.com/ AnandTech]===
*[https://forums.anandtech.com/threads/natural-language-programming.2358744/ Natural Language Programming: Good Idea? Yes Maybe No]
*[https://forums.anandtech.com/threads/conversational-storytelling-with-javascript.2410448/ Conversational Storytelling with JavaScript]
*[https://forums.anandtech.com/threads/natural-language-programming-english-and-or-español.2559516/ Natural Language Programming -- English and/or Español]
*[https://forums.anandtech.com/threads/learning-programming.2406202/#post-36858285 Learning programming]
*[https://forums.anandtech.com/threads/official-free-tools-thread.199156/page-4#post-36861957 Official Free Tools Thread | Plain English contribution]
*[https://news.yCombinator.com/item?id=8719957 Plain English Programming (2013)]
*[https://news.yCombinator.com/item?id=19355965 Do You Approve the Plain English?]
===[https://Forum.Arduino.cc/ Arduino]===
*[https://forum.arduino.cc/t/plain-english-programming/371096/15 Plain English Programming]
===[https://groups.google.com/g/comp.compilers/ comp.compilers]===
*[https://groups.google.com/g/comp.compilers/c/p30I_zVRlps/m/9UshbYjqZzwJ Writing A Plain English Compiler]
*[https://groups.google.com/g/comp.compilers/c/4t3_Dq6foFA/m/CYfdnKMBkAsJ Re: A Plain English Compiler]
===[https://www.GeeksForGeeks.org/ GeeksForGeeks]===
*[https://www.geeksforgeeks.org/the-malevolent-mathemagician-natural-language-programming/ The Malevolent Mathemagician | Natural Language Programming]
*[https://www.geeksforgeeks.org/creating-wysiwyg-document-editor/ Creating WYSIWYG Document Editor | Natural Language Programming]
*[https://www.geeksforgeeks.org/a-kobayashi-maru-approach-to-finding-primes/ A Kobayashi Maru Approach to Finding Primes]
*[https://www.geeksforgeeks.org/natural-language-programming-sorting/ Sorting | Natural Language Programming]
*[https://www.geeksforgeeks.org/natural-language-programming-teaching-kids/ Natural Language Programming — Teaching Kids]
*[https://www.geeksforgeeks.org/natural-language-programming/ Natural Language Programming]
===[https://IntFiction.org/ Interactive Fiction Community Forum]===
*[https://intfiction.org/t/writer-wanted-for-a-conversational-storytelling-project/6169 Writer wanted for a “Conversational Storytelling” project]
*[https://intfiction.org/t/inform-system-developers-do-you-approve-the-plain-english-programming/42213 Inform system developers, do you approve the Plain English Programming?]
===[https://Forums.Parallax.com/ Parallax Forums]===
*[https://forums.parallax.com/discussion/163792/plain-english-programming Plain English Programming]
===[https://www.PC-Control.co.uk/ PC Control Limited]===
*[https://www.pc-control.co.uk/control/articles/article10.php Automated Maze solver using a servo hawk]
**[https://www.pc-control.co.uk/control/articles/images/photo%2009%20-%20definitions.png photo 09 - definitions]
**[https://www.pc-control.co.uk/control/articles/images/photo%2010%20-%20low-level%20helper%20routines.png photo 10 - low-level helper routines]
**[https://www.pc-control.co.uk/control/articles/images/photo%2011%20-%20mid-level%20helper%20routines.png photo 11 - mid-level helper routines]
**[https://www.pc-control.co.uk/control/articles/images/photo%2012%20-%20high-level%20helper%20routines.png photo 12 - high-level helper routines]
**[https://www.pc-control.co.uk/control/articles/images/photo%2013%20-%20main%20routine.png photo 13 - main routine]
**[https://www.pc-control.co.uk/control/articles/images/photo%2014%20-%20terminal%20output.png photo 14 - terminal output]
===[https://www.Quora.com/ Quora]===
*Jul 06, 2021 - [https://www.quora.com/What-can-a-beginner-programmer-use-as-a-programming-IDE-I-tried-using-Visual-Studio-Express-but-it-was-too-hard-to-use-and-understand-Is-there-anything-else-I-can-use/answer/Gerry-Rzeppa What can a beginner programmer use as a programming IDE? I tried using Visual Studio Express but it was too hard to use and understand. Is there anything else I can use?]
**"To get started with Plain English, see here (it’s fast, friendly, and free):"
**Reference to another Gerry Rzeppa Quora article: Jun 27, 2021 - [https://www.quora.com/Is-there-a-right-way-to-learn-to-code-1/answer/Gerry-Rzeppa Is there a right way to learn to code?]
*Jul 06, 2021 - [https://www.quora.com/How-often-when-puzzling-out-a-solution-to-a-problem-do-you-think-or-say-aloud-Are-we-asking-the-right-question-questions/answer/Gerry-Rzeppa How often when puzzling out a solution to a problem, do you think or say aloud, “Are we asking the right question/questions?”]
**"Almost every time."
**Reference to another Gerry Rzeppa Quora article: May 11, 2021 [https://www.quora.com/What-IDE-has-impressed-you-with-its-ease-of-use-and-how-productive-were-you-with-it/answer/Gerry-Rzeppa What IDE has impressed you with its ease of use, and how productive were you with it?]
*Jul 06, 2021 - [https://www.quora.com/What-are-the-best-examples-of-poetry-written-in-programming-languages/answer/Gerry-Rzeppa What are the best examples of poetry written in programming languages?]
**A poem written in Plain English that, when run, makes the picture the poem describes.
*Jul 05, 2021 - [https://www.quora.com/What-is-the-character-limit-for-one-line-of-code-you-go-by/answer/Gerry-Rzeppa What is the character limit for one line of code you go by?]
**"... if handwritten code fits on the screen, it’s okay by me."
*Jul 05, 2021 - [https://www.quora.com/How-is-a-one-dimensional-character-array-and-a-string-similar/answer/Gerry-Rzeppa How is a one-dimensional character array and a string similar?]

**Strings
**Substrings
**String Riders
*Jun 27, 2021 - [https://www.quora.com/Is-there-a-right-way-to-learn-to-code-1/answer/Gerry-Rzeppa Is there a right way to learn to code?]
**A offering of the Plain English IDE and personal tutoring.
*Jun 10, 2021 - [https://www.quora.com/Is-there-any-way-to-write-genuine-self-modifying-code-in-Windows/answer/Gerry-Rzeppa Is there any way to write genuine self-modifying code in Windows?]

**Memory Map
**Memory Pointers
*Jun 10, 2021 - [https://www.quora.com/How-can-I-write-a-Python-program-where-a-bunch-of-students-will-be-assigned-thesis-themes-using-the-FIFO-method/answer/Gerry-Rzeppa How can I write a Python program where a bunch of students will be assigned thesis themes using the FIFO method?]
** Use of path variable.
** Iterative development.
** Relation of item in a list and the name of the list.
** Screen space management.
** Use of "backwards".
*Jun 09, 2021 - [https://www.quora.com/How-do-computers-execute-if-statements-to-the-core-machine-code-and-opcodes/answer/Gerry-Rzeppa How do computers execute if statements to the core machine code and opcodes?]

** List command and explanation of display produced
** Memory Map
** Uses [https://defuse.ca/online-x86-assembler.htm Online x86 and x64 Intel Instruction Assembler] to disassemble code in the List output.
** Offers free “How to Write a Plain English Compiler in Plain English” course via email.
*Jun 08, 2021 - [https://www.quora.com/How-can-I-draw-the-flag-of-a-country-in-C-beginner/answer/Gerry-Rzeppa How can I draw the flag of a country in C#? (beginner)]
** Make a box
** Center the box
** Draw and fill the box
** Stroke
*Jun 07, 2021 - [https://www.quora.com/Is-it-wise-to-ask-query-like-why-curly-braces-are-preferred-in-C-instead-of-opening-and-closing-bracket-when-writing-functions-or-we-just-need-to-memorize-that-as-a-random-rule-Is-there-any-book-which-deals-with/answer/Gerry-Rzeppa Is it wise to ask query like why curly braces are preferred in C instead of opening and closing bracket when writing functions, or we just need to memorize that as a random rule? Is there any book which deals with such miscellaneous things about C?]
** “Arbitrary and unnecessary rule”
*Jun 06, 2021 - [https://www.quora.com/How-would-I-go-about-creating-dots-and-boxes-in-Java/answer/Gerry-Rzeppa How would I go about creating dots and boxes in Java?]
*Jun 06, 2021 - [https://www.quora.com/How-can-I-write-a-menu-driven-program-to-perform-following-operations-on-the-stack-using-array-a-i-Push-ii-Pop-iii-Peek/answer/Gerry-Rzeppa How can I write a menu-driven program to perform the following operations on the stack using array- a (i) Push (ii) Pop (iii) Peek?]
*Jun 06, 2021 - [https://www.quora.com/How-do-I-make-a-countdown-and-when-it-finishes-it-shows-a-text-in-coding-I-want-to-add-a-picture-as-a-border-or-what-else-to-countdown/answer/Gerry-Rzeppa How do I make a countdown and when it finishes, it shows a text in coding? I want to add a picture as a border or what else to countdown.]
*Jun 06, 2021 - [https://www.quora.com/What-is-recursion-Can-you-explain-the-main-principles-of-recursions-Can-you-do-the-code-algorithm-of-the-Fibonacci-series-using-recursion/answer/Gerry-Rzeppa What is recursion? Can you explain the main principles of recursions? Can you do the code/algorithm of the Fibonacci series using recursion?]
*Jun 06, 2021 - [https://www.quora.com/How-do-you-find-the-intersection-point-between-a-line-and-a-rectangle-algorithm-geometry-line-intersection-development/answer/Gerry-Rzeppa What is recursion? How do you find the intersection point between a line and a rectangle (algorithm, geometry, line, intersection, development)?]
*Jun 06, 2021 - [https://www.quora.com/How-do-you-handle-algorithms-to-create-polygons-no-Thiesen-Voronoi-Python-Shapely-Voronoi-development/answer/Gerry-Rzeppa How do you handle algorithms to create polygons (no Thiesen/Voronoi) (Python, Shapely, Voronoi, development)?]
*Jun 04, 2021 - [https://www.quora.com/I-want-to-get-into-programming-What-languages-should-I-learn-first/answer/Gerry-Rzeppa I want to get into programming. What languages should I learn first?]
*Jun 04, 2021 - [https://www.quora.com/How-do-I-make-a-programme-using-codes/answer/Gerry-Rzeppa How do I make a programme using codes?]
*Jun 04, 2021 - [https://www.quora.com/Why-is-Hello-World-the-default-line-in-programming-languages/answer/Gerry-Rzeppa Why is "Hello World" the default line in programming languages?]
*Jun 04, 2021 - [https://www.quora.com/Why-cant-I-find-any-real-photo-of-a-compiler-Is-it-too-small/answer/Gerry-Rzeppa Why can't I find any real photo of a compiler? Is it too small?]
*Jun 03, 2021 - [https://www.quora.com/Why-must-the-starting-value-of-a-control-variable-be-less-than-the-ending-value-in-a-for-loop-expression/answer/Gerry-Rzeppa Why must the starting value of a control variable be less than the ending value in a for loop expression?]
*Jun 03, 2021 - [https://www.quora.com/What-is-the-purpose-of-initialization-of-counter-variable-in-a-loop/answer/Gerry-Rzeppa What is the purpose of "initialization of counter variable" in a loop?]
*Jun 03, 2021 - [https://www.quora.com/What-is-the-nature-of-a-variable-with-real-life-examples/answer/Gerry-Rzeppa What is the nature of a variable with real life examples?]
*Jun 03, 2021 - [https://www.quora.com/Why-is-UML-a-significant-area-of-study/answer/Gerry-Rzeppa Why is UML a significant area of study?]
*May 29, 2021 [https://www.quora.com/Is-it-easier-to-write-an-interpreter-than-a-compiler-Why/answer/Gerry-Rzeppa Is it easier to write an interpreter than a compiler? Why?]
**"Yes. An interpreter can be written with less knowledge of the hardware and operating system."
**Reference to another Gerry Rzeppa Quora article: May 18, 2021 [https://www.quora.com/How-do-I-make-programming-language/answer/Gerry-Rzeppa How do I make programming language?]
*May 18, 2021 [https://www.quora.com/How-do-I-make-programming-language/answer/Gerry-Rzeppa How do I make programming language?]
**Reference to another Gerry Rzeppa Quora article: Dec 22, 2020 [https://www.quora.com/How-do-you-start-writing-your-interpreter-from-scratch/answer/Gerry-Rzeppa How do you start writing your interpreter from scratch?]
**Reference to another Gerry Rzeppa Quora article: Aug 30, 2020 [https://www.quora.com/What-is-a-compiler-and-the-stages-of-a-compiler/answer/Gerry-Rzeppa What is a compiler and the stages of a compiler?]
*May 11, 2021 [https://www.quora.com/What-IDE-has-impressed-you-with-its-ease-of-use-and-how-productive-were-you-with-it/answer/Gerry-Rzeppa What IDE has impressed you with its ease of use, and how productive were you with it?]
*Apr 28, 2021 - [https://www.quora.com/I-need-some-good-project-related-to-data-structure-I-am-a-2rd-year-computer-science-student-What-is-your-suggestion/answer/Gerry-Rzeppa I need some good project related to data structure. I am a 2rd year computer science student. What is your suggestion?]

**Data types
***Fundamental
****byte
****record
***Pointers
****Generic
****Typed
***Strings
***Things
****Stacks
****Queues
****Hashed Indices
**Memory Map
**WYSIWYG document editor
*Apr 12, 2021 - [https://www.quora.com/What-is-the-relationship-between-a-compiler-algorithm-and-data-structure/answer/Gerry-Rzeppa What is the relationship between a compiler, algorithm, and data structure?]
** "A compiler uses data structures and algorithms to translate high-level source code into low-level executable machine code."
** Discussion of the Plain English compiler
*Mar 29, 2021 - [https://www.quora.com/What-is-the-most-interesting-Python-algorithm-in-less-than-ten-lines-of-code/answer/Gerry-Rzeppa What is the most interesting Python algorithm in less than ten lines of code?]
**Lindenmayer interpreter
*Mar 27, 2021 - [https://www.quora.com/What-is-the-best-way-to-present-an-algorithm/answer/Gerry-Rzeppa What is the best way to present an algorithm?]
**Three-step process
*Mar 24, 2021 - [https://www.quora.com/Why-is-it-hard-to-understand-linked-lists-in-programming/answer/Gerry-Rzeppa Why is it hard to understand linked lists in programming?]
**Discuss Plain English linked list.
*Dec 22, 2020 [https://www.quora.com/How-do-you-start-writing-your-interpreter-from-scratch/answer/Gerry-Rzeppa How do you start writing your interpreter from scratch?]
** “primitive” BASIC editor/interpreter
*Oct 03, 2020 - [https://www.quora.com/In-procedural-programming-how-do-you-plan-your-code-without-UML/answer/Gerry-Rzeppa In procedural programming, how do you plan your code without UML?]
**Osmosian maxim: “If it’s hard, it’s wrong.”
**Pair Programming
**"During the winter of 2005-2006, we wrote (and documented) 25,000 lines of Plain English code in just six months ..."
**'“Just tell us what you need, sonny, and we’ll show you how to live without it.”'
*Aug 30, 2020 [https://www.quora.com/What-is-a-compiler-and-the-stages-of-a-compiler/answer/Gerry-Rzeppa What is a compiler and the stages of a compiler?]
**Structure of the Plain English compiler.
*Jul 09, 2020 - [https://www.quora.com/Who-can-print-this-string-Hello-world-more-smartly-and-clearly/answer/Gerry-Rzeppa Who can print this string "Hello world" more smartly and clearly?]
**Plain English program to print in a circle.
**Español Llano (Plain Spanish) program to print in a circle.
*Jun 08, 2020 - [https://www.quora.com/Why-do-some-programmers-write-their-own-compilers/answer/Gerry-Rzeppa Why do some programmers write their own compilers?]
**'My elder son and I wrote our own Plain English compiler and IDE, in Plain English, originally, for three reasons. We wanted to know:'
***'1. Is it easier to program when you don’t have to translate your natural-language thoughts into an alternate syntax?'
***'2. Can natural languages be parsed in a relatively “sloppy” manner (as humans apparently parse them) and still provide a stable enough environment for productive programming?'
***'3. Can low-level programs (like compilers) be conveniently and efficiently written in high level languages (like English)?
**'Turns out the answers to all of three questions is, “Yes!”'

==Successor Project (Trial)==
*[https://www.indiegogo.com/projects/the-hybrid-programming-language#/ The Hybrid Programming Language] - Plain English with snippets of formulas and graphics where needed