Knowledge (XXG)

Whitespace (programming language)

Source 📝

1664: 29: 1561: 1356:
When Whitespace source code is displayed in some browsers, the horizontal spacing produced by a tab character is not fixed, but depends on its location in the text relative to the next
1686: 1701: 1706: 1554: 1691: 1667: 1547: 1430: 1641: 1447: 1502: 1385: 1581: 1360:. Depending on the software, tab characters may also get replaced by the corresponding variable number of space characters. 1570: 56: 1631: 139: 1636: 1616: 179:
A command is written as an instruction modification parameter (IMP) followed by an operation and then any parameters.
112: 104: 116: 92:
can be contained within the whitespace of code written in a language that ignores whitespace – making the text a
123: 100: 70: 143: 93: 59: 1696: 655: 151: 33: 603:
for negative. Subsequent characters before the terminator represent the binary digits of a value.
1509: 592: 1426: 162: 379: 85:) have meaning – contrasting typical languages that largely ignore whitespace characters. 74: 1680: 78: 22: 21:
For syntactically significant whitespace in non-esoteric programming languages, see
1606: 1393: 631: 173:
Whitespace defines a command as a sequences of whitespace characters. For example,
28: 1539: 1532:
module that rewrites the body of your module to a whitespace-only encoding ("for
283:
Copy the nth item on the stack (given by the argument) onto the top of the stack
1418: 89: 1520: 1473: 1591: 525:
Read a character and place it in the location given by the top of the stack
1525: 1646: 1626: 1601: 1596: 537:
Read a number and place it in the location given by the top of the stack
147: 82: 1621: 1586: 1357: 646:
characters. As there is only one namespace, all labels must be unique.
127: 108: 1611: 63: 1517:
A collection of interpreters, compilers, and programs for Whitespace
1514: 587:
characters that represent 0 and 1 respectively and terminated by a
176:
performs arithmetic addition of the top two elements on the stack.
158: 27: 1521:
Collection of Whitespace interpreters in various script languages
1529: 1543: 161:
language had been facetiously suggested five years earlier by
138:
Edwin Brady and Chris Morris, who also developed the Kaya and
157:
The idea of using whitespace characters as operators for the
621:
and represents -110010 in binary which is −50 in decimal.
614:
and represents 1001011 in binary, which is 75 in decimal.
477:
End a subroutine and transfer control back to the caller
130:
source code, is provided by the Whitespace creators.
465:
Jump to a label if the top of the stack is negative
107:language. The programmer can push arbitrary-width 319:Slide n items off the stack, keeping the top item 1353::Output_'!';_L L L:End_the_program 579:A numeric value is represented as a sequence of 571:are ignored and thus can be used for comments. 453:Jump to a label if the top of the stack is zero 232:Operator sequences, organized by IMP, include: 654:The following source code is for a Whitespace 1555: 610:(STSSTSTTL) is positive since it starts with 501:Output the character at the top of the stack 142:languages, created Whitespace in 2002 at the 8: 1380: 1378: 1376: 1374: 1372: 781:L:Push_+1100101=101='e'_onto_the_stack T 617:(TTTSSTSL) is negative since it starts with 729:L:Push_+1001000=72='H'_onto_the_stack T 658:program. For clarity, it is annotated with 88:As a consequence of its syntax, Whitespace 1562: 1548: 1540: 1448:"New Whitespace-Only Programming Language" 513:Output the number at the top of the stack 551:operations were added in Whitespace 0.3. 1413: 1411: 234: 184: 1687:Non-English-based programming languages 1368: 1479:. Florham Park, NJ, USA: AT&T Labs 1474:"Generalizing Overloading for C++2000" 1702:Programming languages created in 2002 591:. The first character represents the 7: 1707:Stack-oriented programming languages 295:Swap the top two items on the stack 271:Duplicate the top item on the stack 1423:Humble Pi: a comedy of maths errors 307:Discard the top item on the stack 14: 1663: 1662: 1642:Shakespeare Programming Language 1510:Release announcement on Slashdot 417:Mark a location in the program 259:Push the number onto the stack 1692:Esoteric programming languages 1571:Esoteric programming languages 1: 16:Esoteric programming language 1632:One-instruction set computer 1723: 1425:. Allen Lane. p. 21. 20: 1660: 1577: 36:with syntax highlighting 1446:Timothy (1 April 2003). 1293:L=+1100100=100='d' T 1241:L:+1101100=108='l' T 1189:L:+1110010=114='r' T 1137:L:+1101111=111='o' T 1085:L:+1110111=119='w' T 1033:L:+100000=32=Space T 937:L:+1101111=111='o' T 885:L:+1101100=108='l' T 833:L:+1101100=108='l' T 638:-terminated sequence of 182:IMP sequences include: 1341:L:+100001=33='!' T 985:L:+101100=44=',' T 559:Characters other than 150:published a review on 49: 1515:The Whitespace Corpus 71:whitespace characters 31: 1472:Stroustrup, Bjarne. 630:A label is used for 144:University of Durham 60:programming language 1358:horizontal tab stop 405:Retrieve from heap 198:Stack Manipulation 34:hello world program 429:Call a subroutine 50: 1674: 1673: 1536:clean programs"). 1432:978-0-241-36023-1 599:for positive and 541: 540: 367:Integer Division 230: 229: 163:Bjarne Stroustrup 126:, along with its 99:Whitespace is an 1714: 1666: 1665: 1564: 1557: 1550: 1541: 1506: 1505: 1503:Official website 1489: 1488: 1486: 1484: 1478: 1469: 1463: 1462: 1460: 1458: 1443: 1437: 1436: 1415: 1406: 1405: 1403: 1401: 1392:. Archived from 1382: 1352: 1348: 1344: 1340: 1336: 1332: 1328: 1324: 1320: 1316: 1312: 1308: 1304: 1300: 1296: 1292: 1288: 1284: 1280: 1276: 1272: 1268: 1264: 1260: 1256: 1252: 1248: 1244: 1240: 1236: 1232: 1228: 1224: 1220: 1216: 1212: 1208: 1204: 1200: 1196: 1192: 1188: 1184: 1180: 1176: 1172: 1168: 1164: 1160: 1156: 1152: 1148: 1144: 1140: 1136: 1132: 1128: 1124: 1120: 1116: 1112: 1108: 1104: 1100: 1096: 1092: 1088: 1084: 1080: 1076: 1072: 1068: 1064: 1060: 1056: 1052: 1048: 1044: 1040: 1036: 1032: 1028: 1024: 1020: 1016: 1012: 1008: 1004: 1000: 996: 992: 988: 984: 980: 976: 972: 968: 964: 960: 956: 952: 948: 944: 940: 936: 932: 928: 924: 920: 916: 912: 908: 904: 900: 896: 892: 888: 884: 880: 876: 872: 868: 864: 860: 856: 852: 848: 844: 840: 836: 832: 828: 824: 820: 816: 812: 808: 804: 800: 796: 792: 788: 784: 780: 776: 772: 768: 764: 760: 756: 752: 748: 744: 740: 736: 732: 728: 724: 720: 716: 712: 708: 704: 700: 696: 692: 685: 681: 680: 675: 674: 669: 665: 661: 645: 641: 637: 620: 613: 602: 598: 590: 586: 582: 570: 566: 562: 489:End the program 441:Jump to a label 235: 185: 175: 152:April Fool's Day 46: 40: 1722: 1721: 1717: 1716: 1715: 1713: 1712: 1711: 1677: 1676: 1675: 1670: 1656: 1573: 1568: 1501: 1500: 1497: 1492: 1482: 1480: 1476: 1471: 1470: 1466: 1456: 1454: 1445: 1444: 1440: 1433: 1417: 1416: 1409: 1399: 1397: 1396:on 18 June 2015 1384: 1383: 1370: 1366: 1354: 1350: 1346: 1342: 1338: 1334: 1330: 1326: 1322: 1318: 1314: 1310: 1306: 1302: 1298: 1294: 1290: 1286: 1282: 1278: 1274: 1270: 1266: 1262: 1258: 1254: 1250: 1246: 1242: 1238: 1234: 1230: 1226: 1222: 1218: 1214: 1210: 1206: 1202: 1198: 1194: 1190: 1186: 1182: 1178: 1174: 1170: 1166: 1162: 1158: 1154: 1150: 1146: 1142: 1138: 1134: 1130: 1126: 1122: 1118: 1114: 1110: 1106: 1102: 1098: 1094: 1090: 1086: 1082: 1078: 1074: 1070: 1066: 1062: 1058: 1054: 1050: 1046: 1042: 1038: 1034: 1030: 1026: 1022: 1018: 1014: 1010: 1006: 1002: 998: 994: 990: 986: 982: 978: 974: 970: 966: 962: 958: 954: 950: 946: 942: 938: 934: 930: 926: 922: 918: 914: 910: 906: 902: 898: 894: 890: 886: 882: 878: 874: 870: 866: 862: 858: 854: 850: 846: 842: 838: 834: 830: 826: 822: 818: 814: 810: 806: 802: 798: 794: 790: 786: 782: 778: 774: 770: 766: 762: 758: 754: 750: 746: 742: 738: 734: 730: 726: 722: 718: 714: 710: 706: 702: 698: 694: 690: 683: 678: 677: 672: 671: 667: 663: 659: 656:"Hello, world!" 652: 643: 639: 635: 628: 618: 611: 600: 596: 595:of the value – 588: 584: 580: 577: 568: 564: 560: 557: 355:Multiplication 174: 171: 136: 119:to store data. 48: 44: 42: 38: 26: 17: 12: 11: 5: 1720: 1718: 1710: 1709: 1704: 1699: 1694: 1689: 1679: 1678: 1672: 1671: 1661: 1658: 1657: 1655: 1654: 1649: 1644: 1639: 1634: 1629: 1624: 1619: 1614: 1609: 1604: 1599: 1594: 1589: 1584: 1578: 1575: 1574: 1569: 1567: 1566: 1559: 1552: 1544: 1538: 1537: 1523: 1518: 1512: 1507: 1496: 1495:External links 1493: 1491: 1490: 1464: 1438: 1431: 1407: 1367: 1365: 1362: 793::Output_'e';_S 741::Output_'H';_S 688: 651: 648: 627: 624: 623: 622: 615: 576: 573: 556: 553: 539: 538: 535: 532: 530: 527: 526: 523: 520: 518: 515: 514: 511: 508: 506: 503: 502: 499: 496: 494: 491: 490: 487: 484: 482: 479: 478: 475: 472: 470: 467: 466: 463: 460: 458: 455: 454: 451: 448: 446: 443: 442: 439: 436: 434: 431: 430: 427: 424: 422: 419: 418: 415: 412: 410: 407: 406: 403: 400: 398: 395: 394: 393:Store in heap 391: 388: 386: 383: 382: 377: 374: 372: 369: 368: 365: 362: 360: 357: 356: 353: 350: 348: 345: 344: 341: 338: 336: 333: 332: 329: 326: 324: 321: 320: 317: 314: 312: 309: 308: 305: 302: 300: 297: 296: 293: 290: 288: 285: 284: 281: 278: 276: 273: 272: 269: 266: 264: 261: 260: 257: 254: 252: 249: 248: 245: 242: 239: 228: 227: 224: 221: 220: 217: 214: 213: 210: 207: 206: 203: 200: 199: 196: 193: 192: 189: 170: 167: 135: 132: 111:values onto a 43: 37: 15: 13: 10: 9: 6: 4: 3: 2: 1719: 1708: 1705: 1703: 1700: 1698: 1695: 1693: 1690: 1688: 1685: 1684: 1682: 1669: 1659: 1653: 1650: 1648: 1645: 1643: 1640: 1638: 1635: 1633: 1630: 1628: 1625: 1623: 1620: 1618: 1615: 1613: 1610: 1608: 1605: 1603: 1600: 1598: 1595: 1593: 1590: 1588: 1585: 1583: 1580: 1579: 1576: 1572: 1565: 1560: 1558: 1553: 1551: 1546: 1545: 1542: 1535: 1531: 1527: 1524: 1522: 1519: 1516: 1513: 1511: 1508: 1504: 1499: 1498: 1494: 1475: 1468: 1465: 1453: 1449: 1442: 1439: 1434: 1428: 1424: 1420: 1414: 1412: 1408: 1395: 1391: 1387: 1381: 1379: 1377: 1375: 1373: 1369: 1363: 1361: 1359: 687: 657: 649: 647: 633: 625: 616: 609: 608: 607: 606:For example: 604: 594: 574: 572: 554: 552: 550: 546: 536: 533: 531: 529: 528: 524: 521: 519: 517: 516: 512: 509: 507: 505: 504: 500: 497: 495: 493: 492: 488: 485: 483: 481: 480: 476: 473: 471: 469: 468: 464: 461: 459: 457: 456: 452: 449: 447: 445: 444: 440: 437: 435: 433: 432: 428: 425: 423: 421: 420: 416: 413: 411: 409: 408: 404: 401: 399: 397: 396: 392: 389: 387: 385: 384: 381: 378: 375: 373: 371: 370: 366: 363: 361: 359: 358: 354: 351: 349: 347: 346: 342: 339: 337: 335: 334: 330: 327: 325: 323: 322: 318: 315: 313: 311: 310: 306: 303: 301: 299: 298: 294: 291: 289: 287: 286: 282: 279: 277: 275: 274: 270: 267: 265: 263: 262: 258: 255: 253: 251: 250: 246: 243: 240: 237: 236: 233: 225: 223: 222: 219:Flow Control 218: 216: 215: 211: 209: 208: 204: 202: 201: 197: 195: 194: 190: 187: 186: 183: 180: 177: 168: 166: 164: 160: 155: 153: 149: 145: 141: 133: 131: 129: 125: 120: 118: 115:and access a 114: 110: 106: 102: 97: 95: 91: 86: 84: 80: 76: 72: 69: 65: 61: 58: 54: 35: 30: 24: 23:Off-side rule 19: 1651: 1607:Iota and Jot 1533: 1526:Acme::Bleach 1481:. Retrieved 1467: 1455:. Retrieved 1451: 1441: 1422: 1419:Parker, Matt 1398:. Retrieved 1394:the original 1389: 1386:"Whitespace" 1355: 670:before each 653: 632:control flow 629: 605: 578: 558: 548: 544: 542: 343:Subtraction 231: 212:Heap Access 181: 178: 172: 156: 137: 121: 98: 87: 67: 52: 51: 47: spaces 18: 650:Sample code 205:Arithmetic 124:interpreter 105:stack-based 90:source code 32:Whitespace 1697:Whitespace 1681:Categories 1652:Whitespace 1483:23 January 1457:23 January 1400:8 December 1364:References 634:. It is a 101:imperative 53:Whitespace 41: tabs 1592:Brainfuck 331:Addition 244:Parameter 1668:Category 1647:Unlambda 1627:Malbolge 1602:INTERCAL 1597:FRACTRAN 1452:Slashdot 1421:(2019). 684:linefeed 636:linefeed 589:linefeed 569:linefeed 555:Comments 247:Meaning 241:Operator 191:Meaning 148:Slashdot 94:polyglot 83:linefeed 57:esoteric 1622:LOLCODE 1587:Befunge 1582:Beatnik 1390:Compsoc 1345:L S 1297:L S 1245:L S 1193:L S 1141:L S 1089:L S 1037:L S 989:L S 941:L S 889:L S 837:L S 785:L S 733:L S 575:Numbers 134:History 128:Haskell 109:integer 1612:JSFuck 1534:really 1429:  682:, and 626:Labels 380:Modulo 316:Number 280:Number 256:Number 169:Syntax 154:2003. 66:where 64:syntax 55:is an 45:  39:  1477:(PDF) 1351: 1347: 1335: 1331: 1327: 1323: 1315: 1311: 1307: 1303: 1299: 1291: 1287: 1279: 1275: 1263: 1259: 1255: 1251: 1247: 1239: 1235: 1223: 1211: 1207: 1203: 1199: 1195: 1187: 1179: 1175: 1159: 1155: 1151: 1147: 1143: 1119: 1107: 1103: 1099: 1095: 1091: 1071: 1055: 1051: 1047: 1043: 1039: 1031: 1027: 1023: 1019: 1015: 1007: 1003: 999: 995: 991: 983: 979: 967: 959: 955: 951: 947: 943: 919: 907: 903: 899: 895: 891: 883: 879: 867: 855: 851: 847: 843: 839: 831: 827: 815: 803: 799: 795: 791: 787: 775: 767: 763: 751: 747: 743: 739: 735: 727: 723: 719: 711: 707: 699: 695: 691: 673:space 640:space 612:space 597:space 581:space 561:space 549:slide 462:Label 450:Label 438:Label 426:Label 414:Label 140:Idris 113:stack 75:space 62:with 1637:Piet 1617:Leet 1530:Perl 1485:2014 1459:2014 1427:ISBN 1402:2015 1343: 1339: 1319: 1295: 1283: 1271: 1267: 1243: 1231: 1227: 1219: 1215: 1191: 1183: 1171: 1167: 1163: 1139: 1135: 1131: 1127: 1123: 1115: 1111: 1087: 1083: 1079: 1075: 1067: 1063: 1059: 1035: 1011: 987: 975: 971: 963: 939: 935: 931: 927: 923: 915: 911: 887: 875: 871: 863: 859: 835: 823: 819: 811: 807: 783: 779: 771: 759: 755: 731: 715: 703: 666:and 642:and 593:sign 583:and 567:and 547:and 545:copy 543:The 226:I/O 117:heap 81:and 68:only 679:tab 644:tab 619:tab 601:tab 585:tab 565:tab 238:IMP 188:IMP 159:C++ 146:. 122:An 79:tab 1683:: 1528:A 1450:. 1410:^ 1388:. 1371:^ 686:. 676:, 662:, 563:, 165:. 103:, 96:. 77:, 1563:e 1556:t 1549:v 1487:. 1461:. 1435:. 1404:. 1349:S 1337:T 1333:S 1329:S 1325:S 1321:S 1317:T 1313:S 1309:S 1305:S 1301:S 1289:S 1285:S 1281:T 1277:S 1273:S 1269:T 1265:T 1261:S 1257:S 1253:S 1249:S 1237:S 1233:S 1229:T 1225:T 1221:S 1217:T 1213:T 1209:S 1205:S 1201:S 1197:S 1185:S 1181:T 1177:S 1173:S 1169:T 1165:T 1161:T 1157:S 1153:S 1149:S 1145:S 1133:T 1129:T 1125:T 1121:T 1117:S 1113:T 1109:T 1105:S 1101:S 1097:S 1093:S 1081:T 1077:T 1073:T 1069:S 1065:T 1061:T 1057:T 1053:S 1049:S 1045:S 1041:S 1029:S 1025:S 1021:S 1017:S 1013:S 1009:T 1005:S 1001:S 997:S 993:S 981:S 977:S 973:T 969:T 965:S 961:T 957:S 953:S 949:S 945:S 933:T 929:T 925:T 921:T 917:S 913:T 909:T 905:S 901:S 897:S 893:S 881:S 877:S 873:T 869:T 865:S 861:T 857:T 853:S 849:S 845:S 841:S 829:S 825:S 821:T 817:T 813:S 809:T 805:T 801:S 797:S 789:S 777:T 773:S 769:T 765:S 761:S 757:T 753:T 749:S 745:S 737:S 725:S 721:S 717:S 713:T 709:S 705:S 701:T 697:S 693:S 689:S 668:L 664:T 660:S 534:- 522:- 510:- 498:- 486:- 474:- 402:- 390:- 376:- 364:- 352:- 340:- 328:- 304:- 292:- 268:- 73:( 25:.

Index

Off-side rule

hello world program
esoteric
programming language
syntax
whitespace characters
space
tab
linefeed
source code
polyglot
imperative
stack-based
integer
stack
heap
interpreter
Haskell
Idris
University of Durham
Slashdot
April Fool's Day
C++
Bjarne Stroustrup
Modulo
sign
control flow
"Hello, world!"
horizontal tab stop

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