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 programming
languages, but omits detailed subroutines, variable declarations or language-specific syntax. The
programming language is augmented with natural language descriptions of the details,
where convenient.
Pseudocode resembles, but should not be confused with, skeleton programs
including dummy code, which can be compiled without errors.
Flowcharts can be thought of as a graphical form of pseudocode.
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, C, Java, BASIC, 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.
| Regular code (written in PHP):
<source lang=php> <?php if (is_valid($cc_number)) {
execute_transaction($cc_number, $order);
} else {
show_failure();
} ?> </source>
|
Pseudocode:
if credit card number is valid
execute transaction based on number and order
else
show a generic failure message
end if
|
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 proprietory Formula editor formats.
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:
Some array programming languages include vectorized expressions and matrix
operations as non-ASCII formulas, mixed with conventional control structures. Examples are:
See also
External links
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)