Comparison of FORTRAN - MATLAB - MAPLE - C syntax
```Structure 	FORTRAN 		MATLAB			MAPLE				C
============    ====================    =====================	=======================		========================
case sensitive	no			yes			yes				yes

comment line	c or * in 1st column	%			#				/* ... */

special		spaces ignored		; suppress output	: suppress output
: next statement	; end statement			; next statement

Variables 	REAL A,B 		all variables complex,	types set by assignment		int, float, double, char
INTEGER I,J		double precision	i:=2;  x:=2.0; 			static
CHAR*5 Label					Label:=`abc`;			void, struct

Dimensions  	DIMENSION A(10)		auto dim'd as used;	A:=array(1..10);		float A[10]
REAL B(10,5)		up to two dimensions	B:=array(1..10,1..5);		float B[10][5]
REAL*8 C(-2:5)					C:=array(-2..5);		double C[7]
(any index)		(index >=1)		(any index)			(index >=0 )

Array Elements	A(3), B(3,2), C(-1)	A(3), B(3,2)		A[3], B[3,2], C[-1]		A[3], B[3][2]

Arithmetic      +  -  *  /  **		+  -  *  /  ^ 		+  -  *  /  ** (or ^)		+  -  *  /  **
.* ./ .^ (element-wise)	&* (matrix product)

Do Loop 	DO I = 1,10,2		for i = 1:2:10		for i from 1 to 10 by 2 do	for (i=1; i<=10; ++2)
....			   .... ;		....;			   		{ .... ;
ENDDO			end			od;			    		}

While Loop 	DO WHILE (A.EQ.0) 	while a==0		while a=0 do			while (a=0)
...			  ... ;			...;			  		{ ... ;
ENDDO			end			od;			   		}

If-Then-Else 	IF (A.EQ.0) THEN	if a==0 		if a=0 then			if (a==0)
....			....			....;		   		{ ...... }
ELSEIF(a.GT.2) THEN	elseif a>2 		elif a>2 then			elseif (a>2) then
....			....			....;		   		{ ...... }
ELSE			else			else				else
....			....			....;		   		{ ...... }
ENDIF			end			fi

Comparisons 	.EQ.  .NE.		==  ~=			=  <>				==  !=
.LT.  .LE.		<   <=			<  <=				<   <=
.GT.  .GE.		>   >=			>  >=				>   >=

sscanf

Output		WRITE			< var >, disp 		printf 				printf
PRINT			fprintf			write, writeto, appendto	fprintf

global vars	COMMON /foo/ a, x(3)				global a,x[3]			declared before main()
extern float x[];

Functions	FUNCTION fn(x,y)	function y=fn(x,y)	f:= (x,y) -> fn(x,y)		<rtn> fn(int n, float x)
fn=...			  y=...							{...; }
return										rtn = void | int | float

Subroutines	SUBROUTINE foo(N,a,x)				foo:=proc()
...						    ...;
return 						end:
end

program files	code.f			code.m			code  (code.m)			code.c

compile		f77 code.f		(interpreted)		(interpreted)			cc -c code.c
mint code   (debug)		cc -c code.c -lm (math lib)

execute		a.out 			>> code			> read(code);			a.out
or: matlab < code.m	or: maple < code > out

I/O to files	a.out < dat > out	>> load dat						a.out < dat > out
>> diary out
```