2. Languages
2.1. The C Language
- o CC
-
Compile and/or link edit programs in the C
language.
The
UNIX
operating system, most of the
subsystems and C itself are written in C.
For a full description of C, read
The C Programming Language,
Brian W. Kernighan and Dennis M. Ritchie,
Prentice-Hall, 1978.
- O
-
General purpose language
designed for structured programming.
- O
-
Data types include
character,
integer,
float,
double,
pointers to all types,
functions returning above types,
arrays of all types,
structures and unions of all types.
- O
-
Operations intended to give machine-independent control
of full machine facility, including to-memory
operations and
pointer arithmetic.
- O
-
Macro preprocessor for parameterized code and inclusion of
standard files.
- O
-
All procedures recursive, with parameters by value.
- O
-
Machine-independent pointer manipulation.
- O
-
Object code uses full
addressing capability of the PDP-11.
- O
-
Runtime library gives access to all system facilities.
- O
-
Definable data types.
- O
-
Block structure
- o LINT
-
Verifier for C programs.
Reports questionable or nonportable usage such as:
Mismatched data declarations and procedure interfaces.
Nonportable type conversions.
Unused variables, unreachable code, no-effect operations.
Mistyped pointers.
Obsolete syntax.
O
Full cross-module checking of separately compiled programs.
o CB
A beautifier for C programs.
Does proper indentation and placement of braces.
- o F77
-
A full compiler for
ANSI Standard Fortran 77.
- O
-
Compatible with C and supporting tools at object level.
- O
-
Optional source compatibility with Fortran 66.
- O
-
Free format source.
- O
-
Optional subscript-range checking, detection of uninitialized variables.
- O
-
All widths of arithmetic:
2- and 4-byte integer; 4- and 8-byte real; 8- and 16-byte
complex.
- o RATFOR
-
Ratfor adds rational
control structure a` la C to Fortran.
- O
-
Compound statements.
- O
-
If-else, do, for, while,
repeat-until, break, next
statements.
- O
-
Symbolic constants.
- O
-
File insertion.
- O
-
Free format source
- O
-
Translation of relationals like >, >=.
- O
-
Produces genuine Fortran to carry away.
- O
-
May be used with F77.
- o STRUCT
-
Converts ordinary ugly Fortran into structured Fortran (i.e., Ratfor),
using statement grouping, if-else, while, for, repeat-until.
2.3. Other Algorithmic Languages
- o BAS
-
An interactive interpreter, similar in style to BASIC.
Interpret unnumbered statements immediately,
numbered statements upon `run'.
- O
-
Statements include:
comment,
dump,
for...next,
goto,
if...else...fi,
list,
print,
prompt,
return,
run,
save.
- O
-
All calculations double precision.
- O
-
Recursive function defining and calling.
- O
-
Builtin functions include log, exp, sin, cos, atn, int,
sqr, abs, rnd.
- O
-
Escape to ED for complex program editing.
- o DC
-
Interactive programmable desk calculator.
Has named storage locations as well
as conventional stack for holding integers or programs.
- O
-
Unlimited precision decimal arithmetic.
- O
-
Appropriate treatment of decimal fractions.
- O
-
Arbitrary input and output radices, in particular
binary, octal, decimal and hexadecimal.
- O
-
Reverse Polish operators:
+ - * /
remainder, power, square root,
load, store, duplicate, clear,
print, enter program text, execute.
- o BC
-
A C-like interactive interface to the desk calculator DC.
- O
-
All the capabilities of DC with a high-level syntax.
- O
-
Arrays and recursive functions.
- O
-
Immediate evaluation of expressions and evaluation of
functions upon call.
- O
-
Arbitrary precision elementary functions:
exp, sin, cos, atan.
- O
-
Go-to-less programming.
2.4. Macroprocessing
- o M4
-
A general purpose macroprocessor.
- O
-
Stream-oriented, recognizes macros anywhere in text.
- O
-
Syntax fits with functional syntax of most higher-level
languages.
- O
-
Can evaluate integer arithmetic expressions.
2.5. Compiler-compilers
- o YACC
-
An LR(1)-based compiler writing system.
During execution of resulting
parsers, arbitrary C functions may be
called to do code generation or semantic actions.
- O
-
BNF syntax specifications.
- O
-
Precedence relations.
- O
-
Accepts formally ambiguous grammars
with non-BNF resolution rules.
- o LEX
-
Generator of lexical analyzers.
Arbitrary C functions may be called
upon isolation of each lexical token.
- O
-
Full regular expression,
plus left and right context dependence.
- O
-
Resulting lexical analysers interface cleanly
with YACC parsers.