by prepositions, resulting in quite verbose code. These languages are typically dynamically typed, meaning that variable declarations and other boilerplate code can be omitted. Such languages 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 may be 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. See also Concept programming Drakon-chart Flowchart Literate programming Program Design Language Short Code Structured English References Further reading External links A pseudocode standard Collected Algorithms of the ACM Pseudocode Guidelines, PDF file. Articles with example pseudocode Source code Algorithm description languages