Annotation of researchv10dc/man/adm/man1/hoc.1, revision 1.1.1.1

1.1       root        1: .TH HOC 1
                      2: .CT 1 numbers
                      3: .SH NAME
                      4: hoc \(mi interactive floating point language
                      5: .SH SYNOPSIS
                      6: .B hoc
                      7: [
                      8: .I file ...
                      9: ]
                     10: .SH DESCRIPTION
                     11: .I Hoc
                     12: interprets a simple language for floating point arithmetic,
                     13: at about the level of Basic, with C-like syntax and
                     14: functions.
                     15: .PP
                     16: The named
                     17: .IR file s
                     18: are read and interpreted in order.
                     19: If no
                     20: .I file
                     21: is given or if
                     22: .I file
                     23: is
                     24: .L -
                     25: .I hoc
                     26: interprets the standard input.
                     27: .PP
                     28: .I Hoc
                     29: input consists of
                     30: .I expressions
                     31: and
                     32: .IR statements .
                     33: Expressions are evaluated and their results printed.
                     34: Statements, typically assignments and function or procedure
                     35: definitions, produce no output unless they explicitly call
                     36: .IR print .
                     37: .PP
                     38: Variable names have the usual syntax, including 
                     39: .LR _ ;
                     40: the name 
                     41: .L _
                     42: by itself contains the value of the last expression evaluated.
                     43: The variables
                     44: .BR E ,
                     45: .BR PI ,
                     46: .BR PHI ,
                     47: .BR GAMMA
                     48: and
                     49: .B DEG 
                     50: are predefined; the last is 59.25..., degrees per radian.
                     51: .PP
                     52: Expressions are formed with these C-like operators, listed by
                     53: decreasing precedence.
                     54: .TP
                     55: .B ^
                     56: exponentiation
                     57: .TP
                     58: .B ! - ++ --
                     59: .TP
                     60: .B * / %
                     61: .TP
                     62: .B + -
                     63: .TP
                     64: .B > >= < <= == !=
                     65: .TP
                     66: .B &&
                     67: .TP
                     68: .B ||
                     69: .TP
                     70: .B = += -= *= /= %=
                     71: .PP
                     72: Built in functions include
                     73: .BR abs ,
                     74: .B atan
                     75: (one argument),
                     76: .BR cos ,
                     77: .BR exp ,
                     78: .BR gamma ,
                     79: .BR int ,
                     80: .BR log ,
                     81: .BR log10 ,
                     82: .BR sin ,
                     83: and
                     84: .BR sqrt .
                     85: The function
                     86: .B read(x)
                     87: reads a value into the variable
                     88: .BR x ;
                     89: the statement
                     90: .B print
                     91: prints a list of expressions that may include
                     92: string constants such as
                     93: .B \&\&\&"hello\en".
                     94: .PP
                     95: Control flow statements are
                     96: .BR if - else ,
                     97: .BR while ,
                     98: and
                     99: .BR for ,
                    100: with braces for grouping.
                    101: Newline ends a statement.
                    102: Backslash-newline is equivalent to a space.
                    103: .PP
                    104: Functions and procedures are introduced by the words
                    105: .B func
                    106: and
                    107: .BR proc ;
                    108: .B return
                    109: is used to return with a value from a function.
                    110: Within a function or procedure,
                    111: arguments are referred to as
                    112: .BR $1 ,
                    113: .BR $2 ,
                    114: etc.; all other variables are global.
                    115: .SH EXAMPLES
                    116: .EX
                    117: func gcd() {
                    118:        temp = abs($1) % abs($2)
                    119:        if(temp == 0) return abs($2)
                    120:        return gcd($2, temp)
                    121: }
                    122: for(i=1; i<12; i++) print gcd(i,12)
                    123: .EE
                    124: .SH "SEE ALSO"
                    125: .IR bc (1),
                    126: .IR dc (1)
                    127: .br
                    128: B. W. Kernighan and R. Pike,
                    129: .I
                    130: The Unix Programming Environment,
                    131: Prentice-Hall, 1984
                    132: .SH BUGS
                    133: Error recovery is imperfect within function and procedure definitions.
                    134: .br
                    135: The treatment of newlines is not exactly user-friendly.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.