|
|
1.1 root 1: .\" @(#)vhel2 6.1 (Berkeley) 4/25/86
2: .\"
3: .NH
4: Languages
5: .NH 2
6: The C Language
7: .LP
8: .sh CC
9: Compile and/or link edit programs in the C
10: language.
11: The
12: .UC "UNIX/32V"
13: operating system, most of the
14: subsystems and C itself are written in C.
15: For a full description of C, read
16: .ul
17: The C Programming Language,
18: Brian W. Kernighan and Dennis M. Ritchie,
19: Prentice-Hall, 1978.
20: .op
21: General purpose language
22: designed for structured programming.
23: .op
24: Data types include
25: character,
26: integer,
27: float,
28: double,
29: pointers to all types,
30: functions returning above types,
31: arrays of all types,
32: structures and unions of all types.
33: .op
34: Operations intended to give machine-independent control
35: of full machine facility, including to-memory
36: operations and
37: pointer arithmetic.
38: .op
39: Macro preprocessor for parameterized code and inclusion of
40: standard files.
41: .op
42: All procedures recursive, with parameters by value.
43: .op
44: Machine-independent pointer manipulation.
45: .op
46: Object code uses full
47: addressing capability of the VAX-11.
48: .op
49: Runtime library gives access to all system facilities.
50: .OP
51: Definable data types.
52: .OP
53: Block structure
54: .sh LINT
55: Verifier for C programs.
56: Reports questionable or nonportable usage such as:
57: .nf
58: .in +2
59: Mismatched data declarations and procedure interfaces.
60: .br
61: Nonportable type conversions.
62: .br
63: Unused variables, unreachable code, no-effect operations.
64: .br
65: Mistyped pointers.
66: .br
67: Obsolete syntax.
68: .in -2
69: .OP
70: Full cross-module checking of separately compiled programs.
71: .sh CB
72: A beautifier for C programs.
73: Does proper indentation and placement of braces.
74: .NH 2
75: Fortran
76: .LP
77: .sh F77
78: A full compiler for
79: ANSI Standard Fortran 77.
80: .OP
81: Compatible with C and supporting tools at object level.
82: .OP
83: Optional source compatibility with Fortran 66.
84: .OP
85: Free format source.
86: .op
87: Optional subscript-range checking, detection of uninitialized variables.
88: .OP
89: All widths of arithmetic:
90: 2- and 4-byte integer; 4- and 8-byte real; 8- and 16-byte
91: complex.
92: .sh RATFOR
93: Ratfor adds rational
94: control structure \o'a\(ga' la C to Fortran.
95: .op
96: Compound statements.
97: .op
98: If-else, do, for, while,
99: repeat-until, break, next
100: statements.
101: .op
102: Symbolic constants.
103: .op
104: File insertion.
105: .op
106: Free format source
107: .op
108: Translation of relationals like >, >=.
109: .op
110: Produces genuine Fortran to carry away.
111: .op
112: May be used with F77.
113: .sh STRUCT
114: Converts ordinary ugly Fortran into structured Fortran (i.e., Ratfor),
115: using statement grouping, if-else, while, for, repeat-until.
116: .NH 2
117: Other Algorithmic Languages
118: .sh DC
119: Interactive programmable desk calculator.
120: Has named storage locations as well
121: as conventional stack for holding integers or programs.
122: .op
123: Unlimited precision decimal arithmetic.
124: .op
125: Appropriate treatment of decimal fractions.
126: .op
127: Arbitrary input and output radices, in particular
128: binary, octal, decimal and hexadecimal.
129: .op
130: Reverse Polish operators:
131: .in+2
132: .nf
133: + \- * /
134: remainder, power, square root,
135: load, store, duplicate, clear,
136: print, enter program text, execute.
137: .in-2
138: .fi
139: .sh BC
140: A C-like interactive interface to the desk calculator DC.
141: .op
142: All the capabilities of DC with a high-level syntax.
143: .op
144: Arrays and recursive functions.
145: .op
146: Immediate evaluation of expressions and evaluation of
147: functions upon call.
148: .op
149: Arbitrary precision elementary functions:
150: exp, sin, cos, atan.
151: .op
152: Go-to-less programming.
153: .NH 2
154: Macroprocessing
155: .LP
156: .nr c 0 1
157: .sh M4
158: A general purpose macroprocessor.
159: .OP
160: Stream-oriented, recognizes macros anywhere in text.
161: .OP
162: Syntax fits with functional syntax of most higher-level
163: languages.
164: .OP
165: Can evaluate integer arithmetic expressions.
166: .NH 2
167: Compiler-compilers
168: .LP
169: .sh YACC
170: An LR(1)-based compiler writing system.
171: During execution of resulting
172: parsers, arbitrary C functions may be
173: called to do code generation or semantic actions.
174: .op
175: BNF syntax specifications.
176: .op
177: Precedence relations.
178: .op
179: Accepts formally ambiguous grammars
180: with non-BNF resolution rules.
181: .sh LEX
182: Generator of lexical analyzers.
183: Arbitrary C functions may be called
184: upon isolation of each lexical token.
185: .OP
186: Full regular expression,
187: plus left and right context dependence.
188: .OP
189: Resulting lexical analysers interface cleanly
190: with YACC parsers.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.