|
|
1.1 ! root 1: ! 2: ! 3: C language Overview C language ! 4: ! 5: ! 6: ! 7: ! 8: The following summarizes how COHERENT implements the C language. ! 9: ! 10: Identifiers ! 11: Characters allowed: AA-ZZ, aa-zz, _, 00-99 ! 12: Case sensitive. ! 13: Number of significant characters in a variable name: ! 14: at compile time:112288 ! 15: at link time:1166 ! 16: C appends `_' to end of external identifiers ! 17: ! 18: Reserved Identifiers (Keywords) ! 19: See CC kkeeyywwoorrddss, above. ! 20: ! 21: Data Formats (bits) ! 22: cchhaarr 8 ! 23: uunnssiiggnneedd cchhaarr 8 ! 24: ddoouubbllee 64 ! 25: ffllooaatt 32 ! 26: iinntt 16 ! 27: uunnssiiggnneedd iinntt 16 ! 28: lloonngg 32 ! 29: uunnssiiggnneedd lloonngg 32 ! 30: pointer 16 ! 31: ! 32: Limits ! 33: Maximum bitfield size: 16 bits ! 34: Maximum number of ccaassees in a sswwiittcchh: no formal limit ! 35: Maximum block nesting depth: no formal limit ! 36: Maximum parentheses nesting depth: no formal limit ! 37: Maximum structure size: 64 kilobytes ! 38: ! 39: Preprocessor Instructions: ! 40: #define #ifdef ! 41: #else #ifndef ! 42: #elif #include ! 43: #endif #line ! 44: #if #undef ! 45: ! 46: Structure Name-Spaces ! 47: Supports both Berkeley and Kernighan-Ritchie conventions ! 48: for structure in union. ! 49: ! 50: Register Variables ! 51: Two available for iinntts ! 52: Two available for pointers ! 53: ! 54: Function Linkage ! 55: Return values for iinntts: AX ! 56: Return values for lloonnggs: DX:AX ! 57: Return values for SMALL-model pointers: AX ! 58: Return values for LARGE-model pointers: DX:AX ! 59: Return values for ddoouubbllees in DX:AX ! 60: Parameters pushed on stack in reverse order, cchhaarrs and sshhoorrtts pushed ! 61: as words, lloonnggs and pointers pushed as lloonnggs, structures ! 62: ! 63: ! 64: COHERENT Lexicon Page 1 ! 65: ! 66: ! 67: ! 68: ! 69: C language Overview C language ! 70: ! 71: ! 72: ! 73: copied onto stack ! 74: Caller must clear parameters off stack ! 75: Stack frame linkage is done through SP register ! 76: ! 77: ***** Special Features and Optimizations ***** ! 78: ! 79: ! 80: * Branch optimization is performed: this uses the smallest branch ! 81: instruction for the required range. ! 82: ! 83: * Unreached code is eliminated. ! 84: ! 85: * Duplicate instruction sequences are removed. ! 86: ! 87: * Jumps to jumps are eliminated. ! 88: ! 89: * Multiplication and division by constant powers of two are ! 90: changed to shifts when the results are the same. ! 91: ! 92: * Sequences that can be resolved at compile time are identified ! 93: and resolved. ! 94: ! 95: ***** See Also ***** ! 96: ! 97: argc, argv, C keywords, C preprocessor, header files, Lexicon, ! 98: libraries, linker-defined symbols, main() ! 99: ! 100: ! 101: ! 102: ! 103: ! 104: ! 105: ! 106: ! 107: ! 108: ! 109: ! 110: ! 111: ! 112: ! 113: ! 114: ! 115: ! 116: ! 117: ! 118: ! 119: ! 120: ! 121: ! 122: ! 123: ! 124: ! 125: ! 126: ! 127: ! 128: ! 129: ! 130: COHERENT Lexicon Page 2 ! 131: ! 132:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.