## Languages

 LA home Computing Prog.Langs  Compared Also see Algorithms  glossary FP Logic
Algol-68 C Pascal Turing expressions general block structured, expression based language "flat", some expression based features block structured, imperative imperative, has `modules' arith +,-,*,/,^NB.% is int div +,-,*,/,%NB.% is int mod +,-,*,/, div, mod +,-,*,/, ** comparisons =, <>, <, <=, >, >= ==, !=, <, <=, >, >= =, <>, <, <=, >, >= =, not= <, <=, >, >= logical and, or, not &&, ||, ! and, or, not and, or, not conditional expression if e then e1[elsf e' then e2]else e3 fior (e | e1 | e2)also case exp'n e ? e1 : e2 n.a. n.a. assignment x:=e x=e; x:=e x:=e conditional if e then s1[elsf e' then s2][else s3] fi if(e) s1[else s2] if e then s1[else s2] if e then s1[elsf e' then s2][else s3] end if case case e in s1,s2,... out s esac switch(e) {case e1:s1 ...} case e of e1:s1;... end case e of label e1:s1;... end case for [for] [i] [from e1] [by e2] [to e3] [while eb] do ... od for(s1;eb;s2)s3 for i:=e1 (to | downto) e2 do s for [decreasing] i:rangesend for while see above while( ) while do loop ...exit when e;... end loop repeat n.a. n.a. repeat until e use loop group begin...end or (...) {...} begin...end begin...end function result final exp'n return e fnName=e result e constants T c=e #define const c=ce const c:=e variables T x [=e] T x var x:T var x:T subroutine proc( )void s void p( ) {...} procedure p(...) ... begin ... end procedure p(...) ... end function proc(...)T e T f(...) {...} function f(...)T ... begin ... end function f(...)T ...end function result final exp'n return e fnName=e result e parameters T x T x [var] x:T [var] x:T © L.Allison '99 data type mode typedef type type basic types int real bool char int float char integer real boolean char int real boolean char structure struct( ) struct( ) record end record end record field access f of s s.f s.f s.f pointer ref * ^ pointer to pointer access implicit or cast *,-> ptr & field ^ thecollection(x) special ptr value nil NULL nil nil(thecollection) union union(...) union record case variant union ... end union array array T1 of T2 T2 a[size] array [T1] of T2 array T1 of T2 array access a[i] a[i] a[i] a(i) array slicing m[i:j, ] rows i to j of 2D n.a. m[i] is row i of 2d n.a. sets n.a. n.a. (use bits) set of T set of T