Mini-Unix/usr/doc/new/hel3

.h0 "\na.\n+b Basic Program Development Package"
.nr c 0 1
.sp
.in0
A kit of fundamental programming tools.
Some of these utilities are used as integral parts of
the higher level languages described below.
.sh AR
Maintain archives and libraries.
Combines several files into one for housekeeping efficiency.
.op
Create new archive.
.op
Update archive by date.
.op
Replace or delete files.
.op
Print table of contents.
.op
Retrieve from archive.
.sh AS
Assembler.
Similar to PAL-11, but different in detail.
.op
Creates object program consisting of
.in+2
.nf
code, possibly read-only,
initialized data or read-write code,
uninitialized data.
.in -2
.fi
.op
Relocatable object code is directly executable without
further transformation.
.op
Object code normally includes a symbol table.
.op
Multiple source files.
.op
Local labels.
.op
Conditional assembly.
.op
\*(lqConditional jump\*(rq instructions become
branches or branches plus jumps depending on distance.
.sh Manual
Printed manual for the assembly language.
.sh Library
The basic run-time library.
These routines are used freely by all system software.
.op
Formatted writing on standard output.
.op
Time conversions.
.op
Number conversions.
.op
Elementary functions: sin, cos, log, exp, atan, sqrt, gamma.
.op
Password encryption.
.op
Quicksort.
.op
Buffered character-by-character I/O.
.op
Random number generator.
.op
Floating point interpreter for non-floating point
machines.
.sh (LIBP)
An elaborated I/O library.
.op
Formatted input and output.
.op
Ability to put characters back into input streams.
.sh Manual
Printed manual for LIBP.
.sh DB
Interactive post-mortem debugger.
Works on core dump files, such as are produced by all
program aborts, on object files, or on any arbitrary file.
.op
Symbolic addressing of files that have symbol tables.
.op
Octal, decimal or ASCII output.
.op
Symbolic disassembly.
.op
Octal or decimal patching.
.sh OD
Dump any file.
.op
Output options include:
octal or decimal by words,
octal by bytes,
ASCII,
opcodes,
hexadecimal,
any combination thereof.
.op
Range of dumping is controllable.
.sh LD
Link edit.
Combine relocatable object files.
Insert required routines from specified libraries.
.op
Resulting code is automatically relocated to start execution
at beginning of user's address space.
.op
Resulting code may start execution at absolute zero.
.sh NM
Print the namelist (symbol table) of an object program.
Provides control over the style and order of
names that are printed.
.sh SIZE
Report the core requirements
of one or more object files.
.sh STRIP
Remove the relocation and symbol table information from
an object file to save space.
.sh TIME
Run a command and report timing information on it.
.h0 "\na.\n+b The Programming Language ``C''"
.nr c 0 1
.nr b 0 1
.sh CC
Compile and/or link edit programs in the C
language.
The M\s8INI-\s10U\s8NIX\s10 operating system, most of the
subsystems and C itself are written in C.
.op
General purpose language
designed for structured programming.
.op
Data types:
.nf
.in+2
character,
integer,
float,
double,
pointers to all types,
functions returning above types,
arrays of all types,
structures of all types.
.in-2
.fi
.op
Operations intended to give machine-independent control
of full machine facility, including to-memory
operations and
pointer arithmetic.
.op
Macro preprocessor for parameterized code and inclusion of
standard files.
.op
All procedures recursive, with parameters by value.
.op
Natural coercions.
.op
Object code uses full
addressing capability of the PDP11.
.op
Runtime library gives access to all system facilities.
.sh Manuals
Printed manual and tutorial for the C language.
.sh CDB
A debugger tailored for use with C.
.op
Usable post-mortem.
.op
The debugger is a completely separate process from the debuggee.
No debugging code is loaded with debuggee.
.op
Prints in natural notation:
characters,
integers (octal and decimal),
floating-point numbers,
double precision numbers,
machine instructions (disassembled).
.op
Stack trace and fault identification.
.h0 "\n+a Other Languages"
.nr b 0 1
.h0 "\na.\n+b FORTRAN"
.sh FC
Compile and/or link-edit FORTRAN IV programs.
Object code is \*(lqthreaded\*(rq.
Relies heavily on floating point.
.op
Idiosyncracies:
.nf
.in+2
free form, lower-case source code,
no arithmetic statement functions,
unformatted I/O requires record lengths agree,
no BACKSPACE,
no P FORMAT control on input.
.in-2
.fi
.op
Handles mixed-mode arithmetic,
general subscripts and general DO limits.
.op
32-bit integer arithmetic.
.op
Free format numeric input.
.op
Understands these nonstandard specifications:
.in+2
LOGICAL*1, *2, *4,
.br
INTEGER*2, *4,
.br
REAL*4, *8,
.br
COMPLEX*8, *16,
.br
IMPLICIT.
.in-2
.fi
.sh RC
Compile and/or link edit `Ratfor' programs.
Ratfor adds rational
control structure \o'a\(ga' la C to FORTRAN.
.op
Else, for, while,
repeat...until
statements.
.op
Symbolic constants.
.op
File insertion.
.op
Compound statements.
.op
Can produce genuine FORTRAN to carry away.
.sh Manual
Printed manual for Ratfor.
.h0 "\na.\n+b Other Algorithmic Languages"
.nr c 0 1
.sh BAS
An interactive interpreter, similar in style to BASIC.
Interpret unnumbered statements immediately,
numbered statements upon `run'.
.op
Statements include:
.in+2
.nf
comment,
dump,
for...next,
goto,
if...else...fi,
list,
print,
prompt,
return,
run,
save.
.fi
.op
All calculations double precision.
.op
Recursive function defining and calling.
.op
Builtin functions include log, exp, sin, cos, atn, int,
sqr, abs, rnd.
.op
Escape to ED for complex program editing.
.op
Usable as a filter.
.sh DC
Interactive programmable desk calculator.
Has named storage locations as well
as conventional stack for holding integers or programs.
.op
Unlimited precision decimal arithmetic.
.op
Appropriate treatment of decimal fractions.
.op
Arbitrary input and output radices, in particular
binary, octal, decimal and hexadecimal.
.op
Reverse Polish operators:
.in+2
.nf
+ \- * /
remainder, power, square root,
load, store, duplicate, clear,
print, enter program text, execute.
.in-2
.fi
.op
Usable as a filter.
.sh BC
A C-like interface to the desk calculator DC.
.op
All the capabilities of DC with a high-level syntax.
.op
Arrays and recursive functions.
.op
Immediate evaluation of expressions and evaluation of
functions upon call.
.op
Arbitrary precision elementary functions:
exp, sin, cos, atan.
.op
Go-to-less programming.
.op
Usable as a filter.
.sh Manual
Printed manual for BC.
.sh SNO
An interpreter very similar to SNOBOL 3.
.op
Limitations:
.nf
.in+2
function definitions are static,
pattern matches are always anchored,
no built-in functions.
.in-2
.fi
.op
Usable as a filter.
.h0 "\na.\n+b Macroprocessing"
.nr c 0 1
.sh M6
A general purpose macroprocessor.
.op
Stream-oriented, recognizes macros anywhere in text.
.op
Integer arithmetic.
.op
Usable as a filter.
.sh Manual
Printed manual for M6.
.h0 "\na.\n+b Compiler-compilers"
.nr c 0 1
.sh TMG
A classical top-down compiler-compiler language.
Provides a formalism for syntax-directed translation.
Produces driving tables to be loaded with a standard
interpreter.
.op
Resulting compilers can have arbitrary tables kept in
paged secondary store.
.op
Integer arithmetic capability.
.op
Syntactic function capability (similar to ALGOL 68
metaproductions).
.sh Manual
Printed manual for the TMG compiler-writing system.
.sh YACC
An LR(1)-based compiler writing system.
During execution of resulting
parsers, arbitrary C-language, Ratfor or FORTRAN functions may be
called to do code generation or semantic actions.
.op
BNF syntax specifications.
.op
Precedence relations.
.op
Accepts formally ambiguous grammars
with non-BNF resolution rules.
.sh Manual
Printed manual for the YACC compiler-writing system.
.h0 "\n+a Word Processing"
.nr b 0 1
.sh ROFF
A typesetting program for terminals.
Easy for nontechnical people to learn, and good
for most ordinary kinds of documents.
Input consists of data lines intermixed with control lines,
such as
.ta  8n
.ti 10
.li
.sp 2	insert two lines of space
.ti10
.li
.ce	center the next line
.br
.op
Justification of either or both margins.
.op
Automatic hyphenation.
.op
Generalized running heads and feet, with even-odd page
capability, numbering, etc.
.op
Definable macros for frequently used
control sequences (no substitutable arguments).
.op
All 4 margins and page size dynamically adjustable.
.op
Hanging indents and one-line indents.
.op
Absolute and relative parameter settings.
.op
Optional legal-style numbering of output lines.
.op
Multiple file capability.
.sh CREF
Make cross-reference listings of a collection of files.
Each symbol is listed together with file, line number, and
text of each line in which it occurs.
.op
Assembler or C language.
.op
Gathering or suppressing references to selected symbols.
.op
Last symbol defined may replace line number.
.op
Various ways to
sort output available.
.op
Selective print of uniquely occurring symbols.
.sh FORM
Form letter generator.
Remembers any number of forms and stock phrases such as names
and addresses.
Output usually intended to be ROFFed.
.op
Anything that is typed in can be remembered for later use.
.op
Runs interactively, querying only for those items
that are not in its memory.
.op
Any item may call for the inclusion
of other items.
For example, full name, address, first name, title, etc.,
may be separately retrieved from one name key.
.sh FED
Edit
the memory used by FORM.
Extract any item, turn it over to context editor ED for
editing, and put it back when done.
.op
List names of selected items.
.op
Print contents of selected item.
.sh SORT
Sort or merge ASCII files line-by-line.
.op
Sort up or down.
.op
Sort lexicographically or on numeric key.
.op
Multiple keys located by delimiters or by character position.
.op
May sort upper case together with lower into dictionary order.
.op
Usable as a filter.
.sh UNIQ
Collapse successive duplicate lines
in a file into one line.
.op
Publish lines that were originally unique,
duplicated, or both.
.op
May give redundancy count for each line.
.op
Usable as a filter.
.sh USORT
SORT and UNIQ at the same time.
Saves substantial time over sequential execution.
.sh TR
Do one-to-one character translation according to
an arbitrary code.
.op
May coalesce selected repeated characters.
.op
May delete selected characters.
.op
Usable as a filter.
.sh DIFF
Report line changes, additions and deletions necessary to bring two files
into agreement.
.op
May produce an editor script to convert one file into another.
.sh COMM
Identify common lines in two sorted files.
Output in up to 3 columns shows lines present in first file only,
present in both, and/or present in second only.
.sh CMP
Compare two files and report disagreeing bytes.
.sh GREP
Print all lines in a file that satisfy
a pattern of the kind used in the editor ED.
.op
May print all lines that fail to match.
.op
May print count of hits.
.op
Usable as a filter.
.sh WC
Count the lines and \*(lqwords\*(rq (blank-separated strings) in a file.
.op
Usable as a filter.
.sh TYPO
Find typographical errors.
Statistically analyzes all the words in a text, weeds out
several thousand familiar ones, and publishes the rest sorted so that
the most improbably spelled ones
tend to come to the top of the list.
.sh GSI
Simulate Model 37 Teletype facilities on
GSI-300, DASI and other Diablo-mechanism terminals.
.op
Gives half-line and reverse platen motions.
.op
Approximates Greek letters and other special characters
by overstriking.
.op
Usable as a filter.
.sh COL
Canonicalize files with reverse line feeds
for one-pass printing.
.op
Usable as a filter.