Knowledge

INTERCAL

Source 📝

367: 1950: 36: 133: 144: 281:* The perversion number consists of a floating-point number with independent signs for the integer and fractional part. Negative fractions indicate pre-escapes (so 1.-94 means "94 pre-escapes to go before 1.00". Or you can just add the numbers together and get 0.06, which is entirely a coincidence since 0.06 is not being developed) 690:.) SELECT and INTERLEAVE (which is also known as MINGLE) are infix binary operators; SELECT takes the bits of its first operand that correspond to "1" bits of its second operand and removes the bits that correspond to "0" bits, shifting towards the least significant bit and padding with zeroes (so 51 (1 815:
Alternative ways to affect program flow, originally available in INTERCAL-72, are to use the IGNORE and REMEMBER instructions on variables (which cause writes to the variable to be silently ignored and to take effect again, so that instructions can be disabled by causing them to have no effect), and
706:
in binary)); MINGLE alternates bits from its first and second operands (in such a way that the least significant bit of its second operand is the least significant bit of the result). There is no operator precedence; grouping marks must be used to disambiguate the precedence where it would otherwise
428:
Comments can be achieved by using the inverted statement identifiers involving NOT or N'T; these cause lines to be initially ABSTAINed from so that they have no effect. (A line can be ABSTAINed from even if it doesn't have valid syntax; syntax errors happen at runtime, and only then when the line is
330:
any sensible programmer would say that that was absurd. Since this is indeed the simplest method, the programmer would be made to look foolish in front of his boss, who would of course happen to turn up, as bosses are expected to do. The effect would be no less devastating for the programmer having
335:
INTERCAL has many other features designed to make it even more aesthetically unpleasing to the programmer: it uses statements such as "READ OUT", "IGNORE", "FORGET", and modifiers such as "PLEASE". This last keyword provides two reasons for the program's rejection by the compiler: if "PLEASE" does
1370:
The compiler, appropriately named "ick", continues the parody. Anything the compiler can't understand, which in a normal language would result in a compilation error, is just skipped. This "forgiving" feature makes finding bugs very difficult; it also introduces a unique system for adding program
1379:
If PLEASE was not encountered often enough, the program would be rejected; that is, ignored without explanation by the compiler. Too often and it would still be rejected, this time for sniveling. Combined with other words that are rarely used in programming languages but appear as statements in
685:
of the result is the operator applied to the least significant and most significant bits of the input, the second-most-significant bit of the result is the operator applied to the most and second-most significant bits, the third-most-significant bit of the result is the operator applied to the
686:
second-most and third-most bits, and so on. The operator is placed between the punctuation mark specifying a variable name or constant and the number that specifies which variable it is, or just inside grouping marks (i.e. one character later than it would be in programming languages like
480:
on which it can be pushed and popped (STASHed and RETRIEVEd, in INTERCAL terminology), increasing the possible complexity of data structures. More modern versions of INTERCAL have by and large kept the same data structures, with appropriate modifications; TriINTERCAL, which modifies the
751:(possibly combined with PLEASE or DO) as a statement identifier, which introduces a choice-point. Before the identifier, an optional line number (an integer enclosed in parentheses) can be given; after the identifier, a percent chance of the line executing can be given in the format 489:
type rather than a 16-bit type, and CLC-INTERCAL implements many of its own data structures, such as "classes and lectures", by making the basic data types store more information rather than adding new types. Arrays are dimensioned by assigning to them as if they were a
336:
not appear often enough, the program is considered insufficiently polite, and the error message says this; if it appears too often, the program could be rejected as excessively polite. Although this feature existed in the original INTERCAL compiler, it was undocumented.
1315:
The C-INTERCAL reimplementation, being available on the Internet, has made the language more popular with devotees of esoteric programming languages. The C-INTERCAL dialect has a few differences from original INTERCAL and introduced a few new features, such as a
1365:
In the article "A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics", INTERCAL is described under the heading "Abandon all sanity, ye who enter here: INTERCAL". The compiler and commenting strategy are among the "weird" features described:
1337:
CLC-INTERCAL has a library called INTERNET for networking functionality including being an INTERCAL server, and also includes features such as Quantum Intercal, which enables multi-value calculations in a way purportedly ready for the first
298:
It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is:
266:
C-INTERCAL swaps the major and minor version numbers, compared to tradition. The HISTORY file shows releases starting at version 0.3 and as of May 2020 having progressed to 0.31, but containing 1.26 between 0.26 and 0.27.
284:* The fractional part of a perversion number can be integer or floating point, with a similar meaning for the parts. The current pre-escape is 1.-94.-2 which means "2 pre-pre-escapes to go before pre-escape 1.-94". 245:
operator to "correctly express the average person's reaction on first encountering exclusive-or". In recent versions of C-INTERCAL, the older operators are supported as alternatives; INTERCAL programs may now be encoded in
510:
There are only five operators in INTERCAL-72. Implementations vary in which characters represent which operation, and many accept more than one character, so more than one possibility is given for many of the operators.
766:
branches to the line specified, remembering the next line that would be executed if it weren't for the NEXT on a call stack (other identifiers than DO can be used on any statement, DO is given as an example);
293:
INTERCAL was intended to be completely different from all other computer languages. Common operations in other languages have cryptic and redundant syntax in INTERCAL. From the INTERCAL Reference Manual:
421:
instruction) do not use the usual formats; in INTERCAL-72, WRITE IN inputs a number written out as digits in English (such as SIX FIVE FIVE THREE FIVE), and READ OUT outputs it in "butchered"
386:", as explained in this footnote: "4) Since all other reference manuals have appendices, it was decided that the INTERCAL manual should contain some other type of removable organ." 401:
states, "what could be sillier?") The assignment operator, represented as an equals sign (INTERCAL's "half mesh") in many other programming languages, is in INTERCAL a left-arrow,
186:
students, in 1972. It satirizes aspects of the various programming languages at the time, as well as the proliferation of proposed language constructs and notations in the 1960s.
1371:
comments. The programmer merely inserts non-compileable text anywhere in the program, being careful not to accidentally embed a bit of valid code in the middle of their comment.
1847: 715:("rabbit ears"), which matches another rabbit ears; the programmer is responsible for using these in such a way that they make the expression unambiguous). 1815: 1608: 816:
the ABSTAIN and REINSTATE instructions on lines or on types of statement, causing the lines to have no effect or to have an effect again respectively.
57: 50: 172: 1987: 17: 1840: 778:
entries from the top of the call stack (this is useful to avoid the error that otherwise happens when there are more than 80 entries), and
205:
The full name of the compiler is "Compiler Language With No Pronounceable Acronym", which is, for obvious reasons, abbreviated "INTERCAL".
177: 1410: 1583: 1646: 1977: 1953: 1833: 1308:
capabilities: the only acceptable input were numbers with the digits spelled out, and the only output was an extended version of
1357:. This implementation supports the creation of standalone binary libraries and interop with other programming languages. 370:
The "circuitous diagram" from the INTERCAL Reference Manual, purportedly to explain the operation of the "select" operator
270:
CLC-INTERCAL version numbering scheme was traditional until version 0.06, when it changed to the scheme documented in the
100: 735:, all of which mean the same to the program (but using one of these too heavily causes the program to be rejected, an 1937: 378:
Caution! Under no circumstances confuse the mesh with the interleave operator, except under confusing circumstances!
119: 72: 1558: 1927: 1533: 79: 1867: 1673: 1856: 1612: 160: 1917: 189:
There are two maintained implementations of INTERCAL dialects: C-INTERCAL (created in 1990), maintained by
1721:
Proceedings of the 6th Digital Arts and Culture Conference, IT University of Copenhagen, 1–3 December 2005
374:
The INTERCAL Reference Manual contains many paradoxical, nonsensical, or otherwise humorous instructions:
86: 1922: 1902: 393:
characters: single and double quotes are 'sparks' and "rabbit ears" respectively. (The exception is the
358:
in 1992. In C, it took less than half a second; the same program in INTERCAL took over seventeen hours.
1389:
The Nitrome Enjoyment System, a fictional video game console created by British indie game developer
1331: 68: 1330:
A more recent variant is Threaded Intercal, which extends the functionality of COME FROM to support
1479: 829: 687: 344: 1688: 1972: 1452: 747:
appended to the identifier). Backtracking INTERCAL, a modern variant, also allows variants using
46: 1324: 477: 168: 136: 1734: 348: 1375:
In "Technomasochism", Lev Bratishenko characterizes the INTERCAL compiler as a dominatrix:
736: 682: 183: 812:
and NEXT FROM, which is like COME FROM but also saves a return address on the NEXT STACK.
8: 825: 723:
INTERCAL statements all start with a "statement identifier"; in INTERCAL-72, this can be
1587: 804:; CLC-INTERCAL and the most recent C-INTERCAL versions also provide computed COME FROM ( 1776: 1650: 739:
in INTERCAL-72 that was mentioned in the C-INTERCAL manual), or an inverted form (with
491: 339:
Despite the language's intentionally obtuse and wordy syntax, INTERCAL is nevertheless
93: 1982: 1339: 486: 352: 233:
operator, "represent the increasing cost of software in relation to hardware", and
1825: 678: 457: 340: 190: 1809: 476:
for 16-bit integers, for instance. However, each of these variables has its own
1820: 1664: 1562: 1350: 1309: 828:
demonstrates how different INTERCAL is from standard programming languages. In
468:, a "hybrid"). There are 65535 available variables of each type, numbered from 422: 355: 366: 1966: 1323:
The authors of C-INTERCAL also created the TriINTERCAL variant, based on the
1668: 347:
can solve. Most implementations of INTERCAL do this very slowly, however. A
1892: 1305: 242: 210: 1559:"Princeton and Atari Syntax – C-INTERCAL 0.27 Revamped Instruction Manual" 758:
In INTERCAL-72, the main control structures are NEXT, RESUME, and FORGET.
398: 1713: 1537: 1320:
statement and a means of doing text I/O based on the Turing Text Model.
351:
benchmark, computing all prime numbers less than 65536, was tested on a
1755: 278:* The term "version" has been replaced by "perversion" for correctness 1877: 1804: 1431: 793: 540: 438: 394: 35: 1932: 1912: 1882: 1317: 893:
The equivalent program in C-INTERCAL is longer and harder to read:
789:
entries from the call stack and jumps to the last line remembered.
1714:"A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics" 193:
and Alex Smith, and CLC-INTERCAL, maintained by Claudio Calvelli.
1907: 1872: 1390: 681:
operators, which work on consecutive bits of their argument; the
499: 445: 251: 405:, made up of an "angle" and a "worm", obviously read as "gets". 389:
The INTERCAL manual gives unusual names to all non-alphanumeric
1897: 1760: 1354: 494:
variable. Constants can also be used, and are represented by a
383: 271: 214: 164: 1483: 502:
number; only integer constants from 0 to 65535 are supported.
482: 437:
INTERCAL-72 (the original version of INTERCAL) had only four
390: 343:: given enough memory, INTERCAL can solve any problem that a 255: 247: 218: 143: 132: 1346: 217:
character set. To allow INTERCAL to run on computers using
1304:
The original Woods–Lyon INTERCAL was very limited in its
442: 677:
Contrary to most other languages, AND, OR, and XOR are
498:("mesh") followed by the constant itself, written as a 1756:"Official home of Simple Component Intercal for .NET" 425:. More recent versions have their own I/O systems. 221:, substitutions for two characters had to be made: 1855: 1816:Computerworld Interview with Don Woods on INTERCAL 1748: 485:with which numbers are represented, can use a 10- 201:According to the original manual by the authors, 1964: 1821:Paper on Abstraction and Modularity in INTERCAL 1711: 1380:INTERCAL, the code reads like someone pleading. 707:be ambiguous (the grouping marks available are 464:, a "tail"), and the array of 32-bit integers ( 153:Compiler Language With No Pronounceable Acronym 147:Jim Lyon, the other author of INTERCAL, in 2005 1393:, has games which are programmed in INTERCAL. 1327:and generalizing INTERCAL's set of operators. 1841: 702:in binary) SELECT 21 (10101 in binary) is 5 ( 1411:"The A-Z of Programming Languages: INTERCAL" 711:("spark"), which matches another spark, and 1774: 1727: 1641: 1639: 1637: 1635: 1633: 1631: 1629: 1528: 1526: 1524: 1522: 1520: 209:The original Princeton implementation used 1848: 1834: 1647:"C-INTERCAL supplemental reference manual" 1518: 1516: 1514: 1512: 1510: 1508: 1506: 1504: 1502: 1500: 1482:. Clc-Intercal. 2010-04-01. Archived from 1681: 139:, one of the authors of INTERCAL, in 2010 120:Learn how and when to remove this message 1707: 1705: 1626: 1360: 452:, called a "spot"), the 32-bit integer ( 365: 142: 131: 1497: 14: 1965: 1663: 1657: 56:Please improve this article by adding 1988:Programming languages created in 1972 1829: 1702: 1474: 1472: 1470: 1468: 1466: 1384: 718: 1768: 1669:"Intercal -- the Language From Hell" 29: 1812:, including several implementations 417:instruction) and output (using the 24: 1463: 1424: 432: 261: 25: 1999: 1798: 1949: 1948: 1928:Shakespeare Programming Language 1775:Bratishenko, Lev (Winter 2009). 1712:Mateas, Michael; Nick Montfort. 361: 34: 819: 1978:Esoteric programming languages 1857:Esoteric programming languages 1805:Official website of C-INTERCAL 1609:"README file for CLC-INTERCAL" 1601: 1586:. 12 June 2019. Archived from 1576: 1551: 1445: 1403: 13: 1: 1810:INTERCAL Resources on the Web 1737:. Cse.unsw.edu.au. 2004-06-09 1691:. Cse.unsw.edu.au. 2006-04-11 1584:"HISTORY file for C-INTERCAL" 1432:"The INTERCAL Resources Page" 1396: 1349:Implementation targeting the 792:C-INTERCAL also provides the 161:esoteric programming language 58:secondary or tertiary sources 27:Esoteric programming language 18:INTERCAL programming language 1918:One-instruction set computer 832:, it could read as follows: 505: 382:The manual also contains a " 7: 1534:"INTERCAL reference manual" 1299: 10: 2004: 1689:"Backtracking in Intercal" 755:, which defaults to 100%. 288: 196: 1946: 1863: 408: 895: 834: 529:CLC-INTERCAL characters 345:Universal Turing machine 301: 1413:. Techworld. 2008-07-04 826:"Hello, world!" program 523:INTERCAL-72 characters 1453:"Alex Smith Biography" 1382: 1373: 1325:Ternary numeral system 526:C-INTERCAL characters 380: 371: 333: 286: 207: 163:that was created as a 148: 140: 45:relies excessively on 1674:Computer Shopper (UK) 1377: 1368: 1361:Impact and discussion 796:instruction, written 376: 369: 349:Sieve of Eratosthenes 296: 276: 203: 146: 135: 1764:. 30 September 2021. 737:undocumented feature 683:most significant bit 534:INTERLEAVE / MINGLE 460:of 16-bit integers ( 456:, a "twospot"), the 448:(represented with a 237:was substituted for 184:Princeton University 1735:"Threaded Intercal" 1723:. pp. 144–153. 867:"Hello, world! 516: 515:INTERCAL operators 1667:(September 1992). 1457:wolframscience.com 1385:In popular culture 719:Control structures 514: 372: 274:file, which says: 149: 141: 1960: 1959: 1777:"Technomasochism" 1340:quantum computers 675: 674: 413:Input (using the 130: 129: 122: 104: 16:(Redirected from 1995: 1952: 1951: 1850: 1843: 1836: 1827: 1826: 1792: 1791: 1789: 1788: 1772: 1766: 1765: 1752: 1746: 1745: 1743: 1742: 1731: 1725: 1724: 1718: 1709: 1700: 1699: 1697: 1696: 1685: 1679: 1678: 1661: 1655: 1654: 1649:. Archived from 1643: 1624: 1623: 1621: 1620: 1611:. Archived from 1605: 1599: 1598: 1596: 1595: 1580: 1574: 1573: 1571: 1570: 1561:. Archived from 1555: 1549: 1548: 1546: 1545: 1536:. Archived from 1530: 1495: 1494: 1492: 1491: 1476: 1461: 1460: 1449: 1443: 1442: 1440: 1439: 1428: 1422: 1421: 1419: 1418: 1407: 1345:In early 2017 a 1295: 1292: 1289: 1286: 1283: 1280: 1277: 1274: 1271: 1268: 1265: 1262: 1259: 1256: 1253: 1250: 1247: 1244: 1241: 1238: 1235: 1232: 1229: 1226: 1223: 1220: 1217: 1214: 1211: 1208: 1205: 1202: 1199: 1196: 1193: 1190: 1187: 1184: 1181: 1178: 1175: 1172: 1169: 1166: 1163: 1160: 1157: 1154: 1151: 1148: 1145: 1142: 1139: 1136: 1133: 1130: 1127: 1124: 1121: 1118: 1115: 1112: 1109: 1106: 1103: 1100: 1097: 1094: 1091: 1088: 1085: 1082: 1079: 1076: 1073: 1070: 1067: 1064: 1061: 1058: 1055: 1052: 1049: 1046: 1043: 1040: 1037: 1034: 1031: 1028: 1025: 1022: 1019: 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 989: 986: 983: 980: 977: 974: 971: 968: 965: 962: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 917: 914: 911: 908: 905: 902: 899: 889: 886: 883: 880: 877: 874: 871: 868: 865: 862: 859: 856: 853: 850: 847: 844: 841: 838: 824:The traditional 811: 803: 784: 773: 765: 754: 750: 746: 742: 734: 730: 726: 714: 710: 671: 667: 663: 658: 654: 650: 646: 641: 637: 627: 622: 617: 607: 602: 597: 587: 582: 577: 567: 562: 558: 554: 550: 545: 539: 517: 513: 497: 475: 471: 467: 463: 455: 451: 420: 416: 404: 326: 323: 320: 317: 314: 311: 308: 305: 240: 236: 228: 225:substituted for 224: 181: 125: 118: 114: 111: 105: 103: 62: 38: 30: 21: 2003: 2002: 1998: 1997: 1996: 1994: 1993: 1992: 1963: 1962: 1961: 1956: 1942: 1859: 1854: 1801: 1796: 1795: 1786: 1784: 1773: 1769: 1754: 1753: 1749: 1740: 1738: 1733: 1732: 1728: 1716: 1710: 1703: 1694: 1692: 1687: 1686: 1682: 1665:Stross, Charles 1662: 1658: 1645: 1644: 1627: 1618: 1616: 1607: 1606: 1602: 1593: 1591: 1582: 1581: 1577: 1568: 1566: 1557: 1556: 1552: 1543: 1541: 1532: 1531: 1498: 1489: 1487: 1478: 1477: 1464: 1451: 1450: 1446: 1437: 1435: 1430: 1429: 1425: 1416: 1414: 1409: 1408: 1404: 1399: 1387: 1363: 1302: 1297: 1296: 1293: 1290: 1287: 1284: 1281: 1278: 1275: 1272: 1269: 1266: 1263: 1260: 1257: 1254: 1251: 1248: 1245: 1242: 1239: 1236: 1233: 1230: 1227: 1224: 1221: 1218: 1215: 1212: 1209: 1206: 1203: 1200: 1197: 1194: 1191: 1188: 1185: 1182: 1179: 1176: 1173: 1170: 1167: 1164: 1161: 1158: 1155: 1152: 1149: 1146: 1143: 1140: 1137: 1134: 1131: 1128: 1125: 1122: 1119: 1116: 1113: 1110: 1107: 1104: 1101: 1098: 1095: 1092: 1089: 1086: 1083: 1080: 1077: 1074: 1071: 1068: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1044: 1041: 1038: 1035: 1032: 1029: 1026: 1023: 1020: 1017: 1014: 1011: 1008: 1005: 1002: 999: 996: 993: 990: 987: 984: 981: 978: 975: 972: 969: 966: 963: 960: 957: 954: 951: 948: 945: 942: 939: 936: 933: 930: 927: 924: 921: 918: 915: 912: 909: 906: 903: 900: 897: 891: 890: 887: 884: 881: 878: 875: 872: 869: 866: 863: 860: 857: 854: 851: 848: 845: 842: 840:<stdio.h> 839: 836: 822: 805: 797: 779: 768: 759: 752: 748: 744: 740: 732: 728: 724: 721: 712: 708: 669: 665: 661: 656: 652: 648: 644: 639: 635: 625: 620: 615: 605: 600: 595: 585: 580: 575: 565: 560: 556: 552: 548: 543: 537: 508: 495: 473: 469: 465: 461: 453: 449: 435: 433:Data structures 429:un-ABSTAINed.) 418: 414: 411: 402: 364: 341:Turing-complete 328: 327: 324: 321: 318: 315: 312: 309: 306: 303: 291: 264: 262:Version numbers 238: 234: 226: 222: 199: 191:Eric S. Raymond 175: 126: 115: 109: 106: 63: 61: 55: 51:primary sources 39: 28: 23: 22: 15: 12: 11: 5: 2001: 1991: 1990: 1985: 1980: 1975: 1973:Computer humor 1958: 1957: 1947: 1944: 1943: 1941: 1940: 1935: 1930: 1925: 1920: 1915: 1910: 1905: 1900: 1895: 1890: 1885: 1880: 1875: 1870: 1864: 1861: 1860: 1853: 1852: 1845: 1838: 1830: 1824: 1823: 1818: 1813: 1807: 1800: 1799:External links 1797: 1794: 1793: 1767: 1747: 1726: 1701: 1680: 1656: 1653:on 2008-02-23. 1625: 1600: 1575: 1550: 1496: 1480:"Clc-Intercal" 1462: 1444: 1423: 1401: 1400: 1398: 1395: 1386: 1383: 1362: 1359: 1351:.NET Framework 1332:multithreading 1310:Roman numerals 1301: 1298: 896: 835: 821: 818: 798:DO COME FROM ( 720: 717: 673: 672: 659: 642: 633: 629: 628: 623: 618: 613: 609: 608: 603: 598: 593: 589: 588: 583: 578: 573: 569: 568: 563: 546: 535: 531: 530: 527: 524: 521: 507: 504: 434: 431: 423:Roman numerals 410: 407: 363: 360: 356:SPARCstation 1 302: 290: 287: 263: 260: 198: 195: 128: 127: 42: 40: 33: 26: 9: 6: 4: 3: 2: 2000: 1989: 1986: 1984: 1981: 1979: 1976: 1974: 1971: 1970: 1968: 1955: 1945: 1939: 1936: 1934: 1931: 1929: 1926: 1924: 1921: 1919: 1916: 1914: 1911: 1909: 1906: 1904: 1901: 1899: 1896: 1894: 1891: 1889: 1886: 1884: 1881: 1879: 1876: 1874: 1871: 1869: 1866: 1865: 1862: 1858: 1851: 1846: 1844: 1839: 1837: 1832: 1831: 1828: 1822: 1819: 1817: 1814: 1811: 1808: 1806: 1803: 1802: 1782: 1778: 1771: 1763: 1762: 1757: 1751: 1736: 1730: 1722: 1715: 1708: 1706: 1690: 1684: 1676: 1675: 1670: 1666: 1660: 1652: 1648: 1642: 1640: 1638: 1636: 1634: 1632: 1630: 1615:on 2020-05-05 1614: 1610: 1604: 1590:on 2020-05-05 1589: 1585: 1579: 1565:on 2012-12-24 1564: 1560: 1554: 1540:on 2011-07-16 1539: 1535: 1529: 1527: 1525: 1523: 1521: 1519: 1517: 1515: 1513: 1511: 1509: 1507: 1505: 1503: 1501: 1486:on 2012-12-24 1485: 1481: 1475: 1473: 1471: 1469: 1467: 1458: 1454: 1448: 1433: 1427: 1412: 1406: 1402: 1394: 1392: 1381: 1376: 1372: 1367: 1358: 1356: 1352: 1348: 1343: 1341: 1335: 1333: 1328: 1326: 1321: 1319: 1313: 1311: 1307: 894: 833: 831: 827: 817: 813: 809: 806:DO COME FROM 801: 795: 790: 788: 783: 777: 772: 763: 756: 738: 716: 705: 701: 697: 693: 689: 684: 680: 660: 643: 634: 631: 630: 624: 619: 614: 611: 610: 604: 599: 594: 591: 590: 584: 579: 574: 571: 570: 564: 547: 542: 536: 533: 532: 528: 525: 522: 519: 518: 512: 503: 501: 493: 488: 484: 479: 459: 447: 444: 440: 430: 426: 424: 406: 400: 396: 392: 387: 385: 379: 375: 368: 362:Documentation 359: 357: 354: 350: 346: 342: 337: 332: 331:been correct. 300: 295: 285: 282: 279: 275: 273: 268: 259: 257: 253: 249: 244: 241:as the unary 232: 220: 216: 212: 211:punched cards 206: 202: 194: 192: 187: 185: 179: 174: 173:James M. Lyon 170: 166: 162: 158: 154: 145: 138: 134: 124: 121: 113: 102: 99: 95: 92: 88: 85: 81: 78: 74: 71: –  70: 66: 65:Find sources: 59: 53: 52: 48: 43:This article 41: 37: 32: 31: 19: 1893:Iota and Jot 1887: 1785:. Retrieved 1780: 1770: 1759: 1750: 1739:. Retrieved 1729: 1720: 1693:. Retrieved 1683: 1672: 1659: 1651:the original 1617:. Retrieved 1613:the original 1603: 1592:. Retrieved 1588:the original 1578: 1567:. Retrieved 1563:the original 1553: 1542:. Retrieved 1538:the original 1488:. Retrieved 1484:the original 1456: 1447: 1436:. Retrieved 1426: 1415:. Retrieved 1405: 1388: 1378: 1374: 1369: 1364: 1353:appeared on 1344: 1336: 1329: 1322: 1314: 1306:input/output 1303: 892: 823: 820:Hello, world 814: 807: 799: 791: 786: 781: 775: 770: 761: 757: 722: 703: 699: 695: 691: 676: 509: 436: 427: 412: 388: 381: 377: 373: 338: 334: 329: 297: 292: 283: 280: 277: 269: 265: 243:exclusive-or 230: 208: 204: 200: 188: 156: 152: 150: 116: 107: 97: 90: 83: 76: 64: 44: 399:Jargon File 176: [ 1967:Categories 1938:Whitespace 1787:2014-05-27 1741:2012-03-10 1695:2012-03-10 1619:2020-05-05 1594:2020-05-05 1569:2012-11-12 1544:2012-03-10 1490:2012-03-10 1438:2012-03-10 1434:. Catb.org 1417:2012-03-10 1397:References 808:expression 787:expression 782:expression 780:DO RESUME 776:expression 771:expression 769:DO FORGET 664:backspace 647:backspace 638:backspace 559:backspace 439:data types 80:newspapers 69:"INTERCAL" 47:references 1878:Brainfuck 1318:COME FROM 794:COME FROM 733:PLEASE DO 541:backspace 520:Operator 506:Operators 441:: the 16- 397:: as the 395:ampersand 169:Don Woods 137:Don Woods 1983:Parodies 1954:Category 1933:Unlambda 1913:Malbolge 1888:INTERCAL 1883:FRACTRAN 1300:Dialects 837:#include 785:removes 774:removes 419:READ OUT 415:WRITE IN 213:and the 159:) is an 157:INTERCAL 110:May 2024 1908:LOLCODE 1873:Befunge 1868:Beatnik 1781:Cabinet 1391:Nitrome 500:decimal 446:integer 289:Details 252:Latin-1 229:as the 197:History 94:scholar 1898:JSFuck 1761:GitHub 1355:GitHub 1288:PLEASE 1273:PLEASE 1108:PLEASE 916:PLEASE 879:return 873:" 861:printf 764:) NEXT 729:PLEASE 572:SELECT 492:scalar 474:.65535 409:Syntax 384:tonsil 272:README 231:mingle 215:EBCDIC 182:, two 165:parody 96:  89:  82:  75:  67:  1717:(PDF) 1264:<- 1237:<- 1210:<- 1183:<- 1156:<- 1129:<- 1099:<- 1072:<- 1045:<- 1018:<- 991:<- 964:<- 937:<- 907:<- 749:MAYBE 731:, or 679:unary 606:& 601:& 596:& 483:radix 478:stack 458:array 403:<- 391:ASCII 313:<- 256:UTF-8 254:, or 248:ASCII 219:ASCII 180:] 101:JSTOR 87:books 1923:Piet 1903:Leet 1783:(36) 1347:.NET 1291:GIVE 1276:READ 852:void 846:main 800:line 762:line 760:DO ( 632:XOR 487:trit 171:and 151:The 73:news 1279:OUT 1270:162 1255:SUB 1228:SUB 1201:SUB 1189:168 1174:SUB 1162:248 1147:SUB 1120:SUB 1090:SUB 1078:194 1063:SUB 1036:SUB 1009:SUB 997:112 982:SUB 970:108 955:SUB 943:238 928:SUB 843:int 753:%50 745:N'T 743:or 741:NOT 704:101 592:AND 472:to 443:bit 353:Sun 325:256 167:by 49:to 1969:: 1779:. 1758:. 1719:. 1704:^ 1671:. 1628:^ 1499:^ 1465:^ 1455:. 1342:. 1334:. 1312:. 1294:UP 1261:13 1246:DO 1243:16 1234:12 1219:DO 1216:24 1207:11 1192:DO 1180:10 1165:DO 1138:DO 1135:22 1111:DO 1105:48 1081:DO 1054:DO 1051:64 1027:DO 1000:DO 973:DO 946:DO 919:DO 913:13 898:DO 876:); 870:\n 727:, 725:DO 668:, 655:, 651:, 612:OR 555:, 553:$ 551:, 470:.1 322:¢# 304:DO 258:. 250:, 223:$ 178:ru 60:. 1849:e 1842:t 1835:v 1790:. 1744:. 1698:. 1677:. 1622:. 1597:. 1572:. 1547:. 1493:. 1459:. 1441:. 1420:. 1285:1 1282:, 1267:# 1258:# 1252:1 1249:, 1240:# 1231:# 1225:1 1222:, 1213:# 1204:# 1198:1 1195:, 1186:# 1177:# 1171:1 1168:, 1159:# 1153:9 1150:# 1144:1 1141:, 1132:# 1126:8 1123:# 1117:1 1114:, 1102:# 1096:7 1093:# 1087:1 1084:, 1075:# 1069:6 1066:# 1060:1 1057:, 1048:# 1042:5 1039:# 1033:1 1030:, 1024:0 1021:# 1015:4 1012:# 1006:1 1003:, 994:# 988:3 985:# 979:1 976:, 967:# 961:2 958:# 952:1 949:, 940:# 934:1 931:# 925:1 922:, 910:# 904:1 901:, 888:} 885:; 882:0 864:( 858:{ 855:) 849:( 830:C 810:) 802:) 713:" 709:' 700:1 698:1 696:0 694:0 692:1 688:C 670:¥ 666:- 662:V 657:∀ 653:? 649:- 645:V 640:- 636:V 626:V 621:V 616:V 586:~ 581:~ 576:~ 566:¢ 561:/ 557:c 549:¢ 544:/ 538:c 496:# 466:; 462:, 454:: 450:. 319:0 316:# 310:1 307:: 239:⊻ 235:? 227:¢ 155:( 123:) 117:( 112:) 108:( 98:· 91:· 84:· 77:· 54:. 20:)

Index

INTERCAL programming language

references
primary sources
secondary or tertiary sources
"INTERCAL"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message

Don Woods

esoteric programming language
parody
Don Woods
James M. Lyon
ru
Princeton University
Eric S. Raymond
punched cards
EBCDIC
ASCII
exclusive-or
ASCII
Latin-1
UTF-8
README

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.