CGOL
Encyclopedia
|
| Tutorials | Encyclopedia | Dictionary | Directory |
|
CGOL
CGOL (pronounced "see goll") is an alternative syntax for the MACLISP programming language, featuring an extensible algebraic notation. It was created by Vaughan Pratt. The notation of CGOL is a traditional algebraic notation (sometimes called "infix syntax"), in the style of ALGOL, rather than Lisp's traditional, uniformly-parenthesized syntax. The CGOL parser is based on Pratt's design for top-down operator precedence parsing, sometimes informally referred to as a "Pratt parser". Semantically, CGOL is essentially just MACLISP, with some additional reader and printer support. SyntaxSpecial notations are available for many commonly used MACLISP operations. For example, one can write a matrix multiply routine as: for i in 1 to n do
for k in 1 to n do
(ac := 0;
for j in 1 to n do
ac := ac + a(i,j)*b(j,k);
c(i,k) := ac)
CGOL has an infix a.(b@c) = (a.b)@c The preceding example corresponds to this text in native MACLISP: (EQUAL (CONS A (APPEND B C)) (APPEND (CONS A B) C)) CGOL uses 'father' of x := 'brother' of relative of y The preceding example corresponds to this text in native MACLISP: (PUTPROP X (GET (GET Y RELATIVE) 'BROTHER) 'FATHER) This illustrates how CGOL notates a function of two arguments: \x,y; 1/sqrt(x**2 + y**2) The preceding example corresponds to this text in native MACLISP: (LAMBDA (X Y) (QUOTIENT 1 (SQRT (PLUS (EXPT X 2) (EXPT Y 2))))) The syntax of CGOL is data-driven and so both modifiable and extensible. References
Source: Wikipedia | The above article is available under the GNU FDL. | Edit this article
|
|
top
©2008-2009 TutorGig.com. All Rights Reserved. Privacy Statement