User Contributed Dictionary
Noun
- In the context of "computing": A description of a computer programming algorithm that uses the structural conventions of programming languages, but omits detailed subroutines or language-specific syntax.
Translations
- Japanese: 擬似コード (giji cōdo)
- Finnish: pseudokoodi
Extensive Definition
Pseudocode (derived from pseudo and
code) is a compact and
informal high-level description of a computer
programming algorithm that uses the
structural conventions of some programming
language, but typically omits details that are not essential
for the understanding of the algorithm, such as subroutines, variable
declarations and system-specific code. The programming language
is augmented with natural
language descriptions of the details, where convenient, or with
compact mathematical notation. The purpose of using pseudocode is
that it may be easier for humans to read than conventional
programming languages, and that it may be a compact and
environment-independent description of the key principles of an
algorithm. No standard for pseudocode syntax exists, as a program
in pseudocode is not an executable program.
Flowcharts can be
thought of as a graphical alternative to pseudocode. Pseudocode
resembles, but should not be confused with,
skeleton programs including dummy code,
which can be compiled without
errors.
Syntax
As the name suggests, pseudocode generally does not actually obey the syntax rules of any particular language; there is no systematic standard form, although any particular writer will generally borrow the appearance of a particular language. Popular sources include Pascal, BASIC, C, Java, Lisp, and ALGOL. Details not relevant to the algorithm (such as memory management code) are usually omitted. Blocks of code, for example code contained within a loop, may be described in a one-line natural language sentence.Depending on the writer, pseudocode may therefore
vary widely in style, from a near-exact imitation of a real
programming language at one extreme, to a description approaching
formatted prose at the other.
Application
Textbooks and scientific publications related to computer science and numerical computation often use pseudocode in description of algorithms, so that all programmers can understand them, even if they do not all know the same programming languages. In textbooks, there is usually an accompanying introduction explaining the particular conventions in use. The level of detail of such languages may in some cases approach that of formalized general-purpose languages — for example, Knuth's seminal textbook The Art of Computer Programming describes algorithms in a fully-specified assembly language for a non-existent microprocessor.A programmer who needs to
implement a specific algorithm, especially an unfamiliar one, will
often start with a pseudocode description, and then simply
"translate" that description into the target programming language
and modify it to interact correctly with the rest of the program.
Programmers may also start a project by sketching out the code in
pseudocode on paper before writing it in its actual language, as a
top-down
structuring approach.
Examples of pseudocode
An example of how pseudocode differs from regular code is below.The pseudocode of the Hello
world program is particularly simple:
output: Hello World
Mathematical style pseudocode
In numerical computation, pseudocode often consists of mathematical notation, typically from set and matrix theory, mixed with the control structures of a conventional programming language, and perhaps also natural language descriptions. This is a compact and often informal notation that can be understood by a wide range of mathematically trained people, and is frequently used as a way to describe mathematical algorithms.Normally non-ASCII typesetting is used for the
mathematical equations, for example by means of TeX or MathML markup, or
proprietary formula
editors.
Mathematical style pseudocode is sometimes
referred to as pidgin code,
for example pidgin ALGOL (the origin of
the concept), pidgin Fortran, pidgin
BASIC, pidgin
Pascal, and pidgin C.
Machine compilation or interpretation
It is often suggested that future programming languages will be more similar to pseudocode or natural language than to present-day languages; the idea is that increasing computer speeds and advances in compiler technology will permit computers to create programs from descriptions of algorithms, instead of requiring the details to be implemented by a human.Natural language grammar in programming languages
Various attempts to bring elements of natural language grammar into computer programming have produced programming languages such as HyperTalk, Lingo, AppleScript, SQL and Inform. In these languages, parentheses and other special characters are replaced by prepositions, resulting in quite talkative code. This may make it easier for a person without knowledge about the language to understand the code and perhaps also to learn the language. However, the similarity to natural language is usually more cosmetic than genuine. The syntax rules are just as strict and formal as in conventional programming, and do not necessarily make development of the programs easier.Mathematical programming languages
An alternative to using mathematical pseudocode (involving set theory notation or matrix operations) for documentation of algorithms is to use a formal mathematical programming language that is a mix of non-ASCII mathematical notation and program control structures. Then the code can be parsed and interpreted by a machine.Several formal specification
languages include set theory notation using special characters.
Examples are:
- Z notation
- Vienna Development Method Specification Language (VDM-SL).
Some
array programming languages include vectorized expressions and
matrix operations as non-ASCII formulas, mixed with conventional
control structures. Examples are:
- A programming language (APL), and its dialects APLX and A+.
- MathCAD.
External links
- A pseudocode standard
- Pseudocode Guidelines, PDF file.
- Pseudocode Programming Process base on data from Code Complete book
pseudocode in Catalan: Pseudocodi
pseudocode in Czech: Pseudokód
pseudocode in German: Pseudocode
pseudocode in Modern Greek (1453-):
Ψευδοκώδικας
pseudocode in Spanish: Pseudocódigo
pseudocode in French: Pseudo-code
pseudocode in Galician: Pseudocódigo
pseudocode in Korean: 의사코드
pseudocode in Italian: Pseudocodice
pseudocode in Hebrew: פסאודו קוד
pseudocode in Hungarian: Pszeudokód
pseudocode in Dutch: Pseudocode
pseudocode in Japanese: 擬似コード
pseudocode in Polish: Pseudokod
pseudocode in Portuguese: Pseudocódigo
pseudocode in Russian: Псевдокод (язык описания
алгоритмов)
pseudocode in Slovenian: Psevdokoda
pseudocode in Serbian: Псеудокод
pseudocode in Finnish: Pseudokoodi
pseudocode in Swedish: Pseudokod
pseudocode in Turkish: Sözde kod
pseudocode in Vietnamese: Mã giả
pseudocode in Chinese: 伪代码