Repository navigation
Pseudocode
According to the IEEE Computer Society, "pseudocode and program design languages (PDLs) are structured, programming language-like notations used to describe a procedure’s processing behavior, generally at the detailed design stage. The use of these languages is less common today but is still found in the documentation of algorithms." (Washizaki, 2025, p. 3-10)
Pseudocode is an informal language for describing algorithms that uses natural-language grammar, often supplemented by programming-like expressions and control structures, without requiring conformance to a formally specified syntax.
- Lexicon: Open vocabulary consisting of natural-language words and, optionally, mathematical symbols and programming constructs.
- Grammar: Natural-language grammatical conventions and informal structural patterns rather than prescribed production rules.
- Syntax: Flexible; multiple syntactic forms may express the same operation.
- Well-formedness: Evaluated primarily through human comprehension rather than compliance with a formal grammar.
Ask the user for their age.
If the age is 18 or older,
display "Adult".
Otherwise, display "Minor".
A Program Design Language (PDL) is a constructed language for specifying algorithms and program structures whose valid expressions are governed by an explicitly defined syntactic grammar.
- Lexicon: Defined keywords, identifiers, operators, literals, and other permitted symbols.
- Grammar: Explicit production rules, potentially expressed using Backus–Naur Form (BNF) or Extended Backus–Naur Form (EBNF).
- Syntax: Constrained; statements must conform to the language's grammatical rules.
- Well-formedness: Determined by whether an expression conforms to the defined lexical and syntactic rules.
READ age
IF age >= 18 THEN
WRITE "Adult"
ELSE
WRITE "Minor"
END IF
The instructions follow ordinary English grammar. Different wording or formatting could express the same algorithm without violating a prescribed syntax.
PDL
This example assumes a PDL whose grammar defines READ, IF, THEN, ELSE, END IF, and WRITE as syntactic constructs.
For example, part of its grammar could be specified in EBNF:
conditional = "IF", condition, "THEN",
{ statement },
[ "ELSE", { statement } ],
"END IF" ;
A complete grammar would also define condition, statement, the lexical conventions, and other constructs. This rule illustrates how the PDL prescribes the arrangement of a conditional statement.
| Linguistic property | Pseudocode | PDL |
|---|---|---|
| Language classification | Informal notation | Constructed language with formal syntax |
| Grammatical foundation | Natural language with informal conventions | Explicit formal grammar |
| Production rules | Not prescribed | Prescribed |
| Syntactic flexibility | High | Limited by grammar |
| Syntactic validation | Human interpretation | Conformance to grammar |
| Semantic purpose | Describe algorithms | Describe algorithms and program structures |
| Executability | Not required | Not required |
One important qualification: Natural languages have grammars, and pseudocode is not inherently ungrammatical. The distinction is whether a particular notation is governed by a prescriptive, explicitly defined formal grammar.
Furthermore, this is a proposed instructional convention, not a universally established distinction. Historical software engineering sources sometimes use pseudocode and PDL synonymously.
I would adopt these concise definitions in GC-STEM documentation:
Pseudocode: An informal representation of an algorithm expressed using natural-language grammar and optional programming-like constructs, without a prescribed formal syntax.
Program Design Language (PDL): A formally structured representation of an algorithm expressed using a defined vocabulary and syntactic grammar that governs the construction of valid statements.
This creates an objective instructional boundary: PDL requires grammatical conformance; pseudocode does not.
It also allows GC-STEM to establish a common, language-independent PDL grammar across courses without requiring students to write executable Python, Java, C++, or another programming language.
Video:What Is Pseudocode and How Do You Use It?
Transcript: What Is Pseudocode and How Do You Use It?
Reading: How to Write a Pseudo Code?
Return to an IT course repo: IT-140 · IT-145
Return to a CS course repo: IT-140 · IT-145 · DAD-220 · CS-200 · CS-205 · CS-210 · CS-230 · CS-250 · CS-255 · CS-300 · CS-305 · CS-310 · CS-319 · CS-320 · CS-330 · CS-340 · CS-350 · CS-360 · CS-370 · CS-405 · CS-407 · CS-410 · CS-411 · CS-460 · CS-465 · CS-470 · CS-495 · CS-499 · CS-500 · CS-503 · CS-505 · CS-508 · CS-510 · CS-530 · CS-540 · CS-550 · CS-560 · CS-570 · CS-580 · CS-590 · CS-600 · CS-610 · CS-620 · CS-630 · CS-640 · CS-650 · CS-660 · CS-680
Maintained by GC-STEM.