Knowledge

BLISS

Source 📝

1223: 511:. As with ALGOL, statements are separated with the semicolon (";"). When a value is computed, it is saved until the next statement terminator – which means that a value can be computed, assigned to a variable, and carried forward to the next statement, if desired. Alternatively, an open parenthesis may be used to begin a block, with the close parenthesis used to close the block. When parentheses are included in an expression, the standard 399:
machine-specific features, because system software often requires this. BLISS has characteristics that are unusual among high-level languages. A name ... is uniformly interpreted as the address of that segment rather than the value of the segment ... Also, BLISS is an "expression language" rather than a "statement language".
402:
This means that every construct of the language that is not a declaration is an expression. Expressions produce a value as well as possibly causing an action such as modification of storage, transfer of control, or execution of a program loop. For example, the counterpart of an assignment "statement"
682:
MODULE E1 (MAIN = CTRL) = BEGIN FORWARD ROUTINE CTRL, STEP; ROUTINE CTRL = !+ ! This routine inputs a value, operates on it, and ! then outputs the result. !- BEGIN EXTERNAL ROUTINE GETNUM,  ! Input a number from terminal PUTNUM;  ! Output a number to
398:
On the other hand, BLISS omits certain features of other high-level languages. It does not have built-in facilities for input/output, because a system-software project usually develops its own input/output or builds on basic monitor I/O or screen management services ... it permits access to
394:
BLISS has many of the features of other modern high-level languages. It has block structure, an automatic stack, and mechanisms for defining and calling recursive routines ... provides a variety of predefined data structures and ... facilities for testing and iteration ...
683:
terminal LOCAL X,  ! Storage for input value Y;  ! Storage for output value GETNUM(X); Y = STEP(.X); PUTNUM(.Y) END; ROUTINE STEP(A) = !+ ! This routine adds 1 to the given value. !- (.A+1); END ELUDOM
403:
in BLISS is, strictly speaking, an expression that itself has a value. The value of an expression can be either used or discarded in BLISS ... Finally, BLISS includes a macro facility that provides a level of capability usually found only in macro-assemblers.
309:. However, in his 2015 oral history for the Babbage Institute's Computer Security History Project, Wulf claimed that the acronym was originally based on the name "Bill's Language for Implementing System Software." 855:
is written in the Bliss language, DEC's "corporate implementation language" (originally developed at CMU). Bliss never gained popularity among DEC's customers; few sites have Bliss compilers.
1390: 1281: 1365: 1200: 360:, The language did not become popular among customers and few had the compiler, but DEC used it heavily in-house into the 1980s; most of the utility programs for the 1178: 1023: 570:
keyword. Declaring a variable normally causes the compiler to allocate space for it; when necessary, a variable may be assigned a fixed machine address via the
1095: 1173: 264:
debuted a few years later. Since then, C became popular and common, and BLISS faded into obscurity. When C was in its infancy, a few projects within
1604: 1594: 485:– which says to create a full-word constant containing 8, and store it in the location whose address corresponds to that of Z. So 1360: 1195: 1490: 1222: 740: 1355: 1291: 1088: 1443: 1296: 216: 1231: 1584: 1141: 1124: 1521: 1395: 1276: 1241: 1114: 1348: 1136: 965: 322: 1470: 1438: 1375: 1246: 1081: 1551: 1212: 493:) places the constant 14 into the location which is 12 words after the address of Z. (This is considered bad practice.) 1251: 974: 1266: 1405: 1321: 1151: 1129: 1400: 1370: 1166: 1161: 1156: 622: 547:
for not equal. For example, the following code will assign the absolute value of Z to the address indicated by Q:
1311: 574:
declaration. This feature is primarily used for accessing either machine registers or certain special addresses.
1599: 1536: 1326: 1256: 893: 813: 1146: 897: 412: 329: 1453: 1557: 1286: 245: 100: 1104: 380: 249: 71: 982: 771: 1589: 1207: 1190: 957: 930: 652: 1331: 1035: 525:
expression, which tests a true-false condition, performs alternative actions, and returns a result.
291: 261: 133: 128: 1428: 877: 375:
architectures as part of the ports of OpenVMS to these platforms. The x86-64 BLISS compiler uses
1053: 279: 42: 38: 34: 17: 1068: 1338: 922: 1385: 605: 536: 29: 8: 512: 317: 275: 1546: 1459: 1343: 1029: 1005: 947: 794: 283: 140: 66: 1063: 1448: 970: 852: 349: 161: 1009: 963:
Wulf, W. A.; Johnson, R. K.; Weinstock, C. B.; Hobbs, S. O.; Geschke, C. M. (1975).
798: 1541: 1506: 997: 951: 939: 786: 364: 184: 282:
language based on expressions rather than statements, and includes constructs for
1480: 1380: 50: 835: 1511: 1048: 918: 697: 428:
are full word for the machine being used, e.g. on a 16-bit machine such as the
257: 200: 189: 59: 867: 1578: 1526: 1485: 1423: 1185: 1073: 1058: 914: 736: 566:(variables and constants) must be declared before use, typically using the 253: 55: 943: 1531: 1433: 116: 447:
is always to the address of that variable. For example, the instruction
367:
were written in BLISS-32. The DEC BLISS compiler has been ported to the
868:"2017 LLVM Developers' Meeting: J. Reagan "Porting OpenVMS using LLVM"" 746:(Interview). Interviewed by Jeffrey R. Yost. Charlottesville, Virginia. 578: 515:
rules are used, in which parenthesized expressions are computed first,
353: 345: 287: 272: 265: 165: 157: 121: 1001: 790: 463:
of Z, one must prefix the variable with a period; so one would type
596:, which allow for text substitution, are declared with the keyword 313: 1186:
H. John Heinz III College of Information Systems and Public Policy
383:, replacing the proprietary GEM backend used for Alpha and IA-64. 1563: 1391:
Carnegie Mellon University Usable Privacy and Security Laboratory
872: 361: 260:
around 1970. It was perhaps the best known system language until
437: 429: 372: 337: 333: 177: 149: 145: 500: 368: 357: 233: 173: 169: 1366:
Carnegie Mellon University Computational Biology Department
1301: 376: 295: 433: 341: 153: 332:(DEC) developed and maintained BLISS compilers for the 420:
The BLISS language has the following characteristics:
647:
expression, which is similar to ALGOL's FOR statement
913: 303:
Basic Language for Implementation of System Software
842:(Mailing list). Kermit Project, Columbia University 1174:Dietrich College of Humanities and Social Sciences 307:System Software Implementation Language, Backwards 814:"DECWest Compiler Project, Description, and Plan" 674:The following example is taken verbatim from the 1576: 765: 763: 761: 759: 757: 755: 753: 1103: 827: 467:to perform this function, which adds 8 to the 1089: 1213:Margaret Morrison Carnegie College (defunct) 750: 983:"The BLISS programming language: a history" 958:"BLISS: A Language for Systems Programming" 923:"BLISS: A Language for Systems Programming" 772:"The BLISS programming language: a history" 320:, and formed the basis of the classic book 301:The name is variously said to be short for 1361:Hunt Institute for Botanical Documentation 1096: 1082: 741:"An Interview with WILLIAM A. WULF OH 477" 436:computer, constants are 32 bits, and on a 1036:Session notes for "Introduction to BLISS" 889: 887: 836:"News about Kermit Programs for VAX/VMS" 811: 1444:Mellon Institute of Industrial Research 980: 833: 769: 386: 1577: 1605:Programming languages created in 1970 1396:Pittsburgh Science of Learning Center 1077: 884: 316:was notable for its extensive use of 1356:Human Computer Interaction Institute 1349:National Robotics Engineering Center 966:The Design of an Optimizing Compiler 834:da Cruz, Frank (16 September 1987). 735: 586:, and are declared with the keyword 539:the = symbol for the same purpose), 323:The Design of an Optimizing Compiler 1595:Carnegie Mellon University software 1439:Main Building, U.S. Bureau of Mines 1376:Pittsburgh Life Sciences Greenhouse 706:BLISS-16C - DEC version of BLISS-11 555:Q = (IF .Z GTR 0 THEN .Z ELSE -.Z); 268:debated the merits of BLISS vs. C. 13: 1552:Swartz Center for Entrepreneurship 14: 1616: 1017: 990:Software: Practice and Experience 812:MacLaren, Don (August 27, 1987). 779:Software: Practice and Experience 669: 1406:Carnegie Mellon University Press 1322:Pittsburgh Supercomputing Center 1221: 1130:Information Networking Institute 880:from the original on 2021-12-21. 613:, and declared with the keyword 1401:Integrated Innovation Institute 1371:Language Technologies Institute 1201:Masters in Software Engineering 1167:Entertainment Technology Center 1064:BLISS-11, BLISS-32 and BLISS-64 623:high-level programming language 459:. If one needs to add 8 to the 1537:Center for PostNatural History 1327:Software Engineering Institute 1069:FreeVMS Portable BLISS for GCC 860: 805: 729: 718:Common BLISS - portable subset 507:statement and terminated with 432:, a constant is 16 bits; on a 1: 1585:Systems programming languages 907: 898:Digital Equipment Corporation 413:Digital Equipment Corporation 330:Digital Equipment Corporation 312:The original Carnegie Mellon 1454:Pittsburgh Technology Center 1179:Social and Decision Sciences 1042: 535:for equality (as opposed to 503:: a block is started with a 7: 1558:Waffle Shop: A Reality Show 981:Brender, Ronald F. (2002). 770:Brender, Ronald F. (2002). 687: 631:Alternative execution paths 620:The language supports some 609:, which are referred to as 582:in the language are called 246:system programming language 83:; 54 years ago 10: 1621: 1196:School of Computer Science 1106:Carnegie Mellon University 477:is done with the standard 451:refers to adding 8 to the 250:Carnegie Mellon University 72:Carnegie Mellon University 15: 1499: 1469: 1414: 1310: 1265: 1230: 1219: 1208:Tepper School of Business 1191:Mellon College of Science 1113: 1030:a post about BLISS at DEC 931:Communications of the ACM 232: 227: 222: 215: 195: 183: 139: 127: 115: 111: 99: 95: 77: 65: 49: 28: 1332:CERT Coordination Center 722: 680: 663:(number to string, etc.) 499:are similar to those of 440:, a constant is 36 bits. 294:. It does not include a 1429:Bellefield Boiler Plant 445:reference to a variable 1125:College of Engineering 969:. New York: Elsevier, 603:The language supports 543:for Greater Than, and 531:uses keywords such as 418: 280:structured programming 1600:Programming languages 1500:Projects and legacies 1339:Carnegie Mellon CyLab 1287:Scotch'n'Soda Theatre 1034:Madison, Matthew D.; 1024:BLISS Manual at DECUS 944:10.1145/362919.362936 894:Bliss Language Manual 676:Bliss Language Manual 519:Conditional execution 409:Bliss Language Manual 392: 256:, D. B. Russell, and 1386:Ames Research Center 1137:College of Fine Arts 387:Language description 16:For other uses, see 1415:Location, Buildings 876:. 31 October 2017. 643:through use of the 489:(or, alternatively 78:First appeared 25: 1547:Robot Hall of Fame 1491:Alumni and faculty 1460:Walking to the Sky 1344:Robotics Institute 917:; Russell, D. B.; 840:Info-Kermit Digest 659:Certain automatic 284:exception handling 23: 1572: 1571: 1449:Newell Simon Hall 921:(December 1971). 739:(June 23, 2015). 455:of Z, not to its 239: 238: 117:Typing discipline 58:, D. B. Russell, 1612: 1590:OpenVMS software 1542:Conflict Kitchen 1473: 1314: 1269: 1234: 1225: 1117: 1107: 1098: 1091: 1084: 1075: 1074: 1028:Lehotsky, Alan; 1013: 987: 955: 927: 919:Habermann, A. N. 901: 891: 882: 881: 864: 858: 857: 849: 847: 831: 825: 824: 818: 809: 803: 802: 776: 767: 748: 747: 745: 737:Wulf, William A. 733: 661:data conversions 646: 636: 616: 599: 589: 573: 569: 556: 546: 542: 534: 524: 510: 506: 497:Block statements 492: 488: 484: 480: 466: 450: 416: 365:operating system 211: 208: 206: 204: 202: 91: 89: 84: 51:Designed by 26: 22: 1620: 1619: 1615: 1614: 1613: 1611: 1610: 1609: 1575: 1574: 1573: 1568: 1495: 1481:Andrew Carnegie 1471: 1465: 1416: 1410: 1381:Carnegie School 1312: 1306: 1267: 1261: 1233:Branch campuses 1232: 1226: 1217: 1115: 1109: 1105: 1102: 1045: 1020: 1002:10.1002/spe.470 996:(10): 955–981. 985: 938:(12): 780–790. 925: 910: 905: 904: 892: 885: 866: 865: 861: 845: 843: 832: 828: 816: 810: 806: 791:10.1002/spe.470 785:(10): 955–981. 774: 768: 751: 743: 734: 730: 725: 690: 685: 684: 672: 644: 634: 614: 597: 587: 571: 567: 554: 544: 540: 532: 522: 508: 504: 490: 486: 482: 478: 464: 448: 417: 407: 389: 379:as its backend 258:A. N. Habermann 199: 107: 87: 85: 82: 60:A. N. Habermann 21: 12: 11: 5: 1618: 1608: 1607: 1602: 1597: 1592: 1587: 1570: 1569: 1567: 1566: 1561: 1554: 1549: 1544: 1539: 1534: 1529: 1524: 1519: 1514: 1512:Andrew Project 1509: 1503: 1501: 1497: 1496: 1494: 1493: 1488: 1483: 1477: 1475: 1467: 1466: 1464: 1463: 1456: 1451: 1446: 1441: 1436: 1431: 1426: 1420: 1418: 1417:and Structures 1412: 1411: 1409: 1408: 1403: 1398: 1393: 1388: 1383: 1378: 1373: 1368: 1363: 1358: 1353: 1352: 1351: 1341: 1336: 1335: 1334: 1324: 1318: 1316: 1308: 1307: 1305: 1304: 1299: 1294: 1289: 1284: 1279: 1273: 1271: 1263: 1262: 1260: 1259: 1257:Silicon Valley 1254: 1249: 1244: 1238: 1236: 1228: 1227: 1220: 1218: 1216: 1215: 1210: 1205: 1204: 1203: 1193: 1188: 1183: 1182: 1181: 1171: 1170: 1169: 1164: 1159: 1154: 1149: 1144: 1134: 1133: 1132: 1121: 1119: 1111: 1110: 1101: 1100: 1093: 1086: 1078: 1072: 1071: 1066: 1061: 1056: 1051: 1044: 1041: 1040: 1039: 1032: 1026: 1019: 1018:External links 1016: 1015: 1014: 978: 961: 960:. (PostScript) 909: 906: 903: 902: 883: 859: 826: 804: 749: 727: 726: 724: 721: 720: 719: 716: 713: 710: 707: 704: 701: 700:for the PDP-11 698:cross compiler 694: 689: 686: 681: 671: 670:Source example 668: 667: 666: 665: 664: 657: 648: 638: 618: 601: 591: 575: 560: 559: 558: 557: 549: 548: 526: 516: 494: 472: 441: 405: 388: 385: 381:code generator 237: 236: 230: 229: 225: 224: 220: 219: 213: 212: 203:.trailing-edge 197: 193: 192: 190:Cross-platform 187: 181: 180: 143: 137: 136: 131: 125: 124: 119: 113: 112: 109: 108: 105: 103: 101:Stable release 97: 96: 93: 92: 79: 75: 74: 69: 63: 62: 53: 47: 46: 32: 9: 6: 4: 3: 2: 1617: 1606: 1603: 1601: 1598: 1596: 1593: 1591: 1588: 1586: 1583: 1582: 1580: 1565: 1562: 1560: 1559: 1555: 1553: 1550: 1548: 1545: 1543: 1540: 1538: 1535: 1533: 1530: 1528: 1525: 1523: 1520: 1518: 1515: 1513: 1510: 1508: 1505: 1504: 1502: 1498: 1492: 1489: 1487: 1486:Mellon family 1484: 1482: 1479: 1478: 1476: 1474: 1468: 1462: 1461: 1457: 1455: 1452: 1450: 1447: 1445: 1442: 1440: 1437: 1435: 1432: 1430: 1427: 1425: 1424:Squirrel Hill 1422: 1421: 1419: 1413: 1407: 1404: 1402: 1399: 1397: 1394: 1392: 1389: 1387: 1384: 1382: 1379: 1377: 1374: 1372: 1369: 1367: 1364: 1362: 1359: 1357: 1354: 1350: 1347: 1346: 1345: 1342: 1340: 1337: 1333: 1330: 1329: 1328: 1325: 1323: 1320: 1319: 1317: 1315: 1309: 1303: 1300: 1298: 1295: 1293: 1290: 1288: 1285: 1283: 1280: 1278: 1275: 1274: 1272: 1270: 1264: 1258: 1255: 1253: 1250: 1248: 1245: 1243: 1240: 1239: 1237: 1235: 1229: 1224: 1214: 1211: 1209: 1206: 1202: 1199: 1198: 1197: 1194: 1192: 1189: 1187: 1184: 1180: 1177: 1176: 1175: 1172: 1168: 1165: 1163: 1160: 1158: 1155: 1153: 1150: 1148: 1145: 1143: 1140: 1139: 1138: 1135: 1131: 1128: 1127: 1126: 1123: 1122: 1120: 1118: 1112: 1108: 1099: 1094: 1092: 1087: 1085: 1080: 1079: 1076: 1070: 1067: 1065: 1062: 1060: 1057: 1055: 1052: 1050: 1047: 1046: 1037: 1033: 1031: 1027: 1025: 1022: 1021: 1011: 1007: 1003: 999: 995: 991: 984: 979: 976: 975:0-444-00158-1 972: 968: 967: 962: 959: 953: 949: 945: 941: 937: 933: 932: 924: 920: 916: 912: 911: 899: 895: 890: 888: 879: 875: 874: 869: 863: 856: 854: 841: 837: 830: 822: 821:Bitsavers.org 815: 808: 800: 796: 792: 788: 784: 780: 773: 766: 764: 762: 760: 758: 756: 754: 742: 738: 732: 728: 717: 714: 711: 708: 705: 702: 699: 696:BLISS-11 - a 695: 692: 691: 679: 677: 662: 658: 656: 654: 649: 642: 639: 632: 629: 628: 626: 624: 619: 612: 608: 607: 602: 595: 592: 585: 581: 580: 576: 565: 562: 561: 553: 552: 551: 550: 538: 530: 527: 520: 517: 514: 502: 498: 495: 481:symbol, e.g. 476: 473: 470: 462: 458: 454: 446: 442: 439: 435: 431: 427: 423: 422: 421: 414: 410: 404: 400: 396: 391: 384: 382: 378: 374: 370: 366: 363: 359: 355: 351: 347: 343: 339: 335: 331: 327: 325: 324: 319: 318:optimizations 315: 310: 308: 304: 299: 297: 293: 289: 285: 281: 277: 274: 269: 267: 263: 259: 255: 251: 248:developed at 247: 243: 235: 231: 228:Influenced by 226: 221: 218: 214: 210: 198: 194: 191: 188: 186: 182: 179: 175: 171: 167: 163: 159: 155: 151: 147: 144: 142: 138: 135: 132: 130: 126: 123: 120: 118: 114: 110: 104: 102: 98: 94: 80: 76: 73: 70: 68: 64: 61: 57: 54: 52: 48: 44: 40: 36: 33: 31: 27: 19: 1556: 1516: 1458: 1268:Student life 1142:Architecture 1038:(PostScript) 993: 989: 964: 935: 929: 871: 862: 851: 844:. Retrieved 839: 829: 820: 807: 782: 778: 731: 675: 673: 660: 651: 640: 630: 621: 610: 604: 593: 583: 577: 563: 528: 518: 496: 474: 468: 460: 456: 452: 444: 425: 419: 408: 401: 397: 393: 390: 356:, and Intel 328: 321: 311: 306: 302: 300: 270: 241: 240: 223:Common BLISS 207:/bb-m836d-bm 106:BLISS-64 1532:3M computer 1434:Kraus Campo 915:Wulf, W. A. 579:Subroutines 564:Identifiers 537:overloading 298:statement. 271:BLISS is a 1579:Categories 1297:The Tartan 1292:Miller ICA 1282:Greek Life 1277:Traditions 908:References 637:expression 625:constructs 611:structures 529:Comparison 513:precedence 475:Assignment 288:coroutines 254:W. A. Wulf 56:W. A. Wulf 43:procedural 39:imperative 35:Structured 1242:Australia 1116:Academics 1043:Downloads 853:Kermit-32 655:functions 650:Built-in 627:such as: 521:uses the 426:constants 354:DEC Alpha 346:DEC PRISM 266:Bell Labs 252:(CMU) by 166:DEC Alpha 67:Developer 1313:Research 1059:BLISS-36 1054:BLISS-11 1049:BLISS-10 1010:45466625 878:Archived 799:45466625 715:BLISS-64 712:BLISS-36 709:BLISS-32 703:BLISS-16 693:BLISS-10 688:Versions 633:via the 584:routines 469:contents 406:—  314:compiler 273:typeless 217:Dialects 141:Platform 122:Typeless 30:Paradigm 1564:YinzCam 952:9564255 873:YouTube 641:Looping 588:ROUTINE 491:12+Z=14 487:Z+12=14 453:address 362:OpenVMS 196:Website 134:Lexical 86: ( 1472:People 1252:Rwanda 1152:Design 1008:  973:  956:Also: 950:  900:(1987) 797:  653:string 615:VECTOR 606:arrays 594:Macros 438:PDP-10 430:PDP-11 415:(1987) 373:x86-64 338:PDP-11 334:PDP-10 292:macros 290:, and 201:pdp-10 178:x86-64 150:PDP-11 146:PDP-10 1517:BLISS 1507:Alice 1247:Qatar 1162:Music 1157:Drama 1006:S2CID 986:(PDF) 948:S2CID 926:(PDF) 846:5 May 817:(PDF) 795:S2CID 775:(PDF) 744:(PDF) 723:Notes 598:MACRO 505:BEGIN 501:ALGOL 471:of Z. 461:value 457:value 369:IA-64 358:IA-32 276:block 244:is a 242:BLISS 234:ALGOL 174:IA-64 170:IA-32 158:PRISM 129:Scope 24:BLISS 18:Bliss 1527:Mach 1522:CMMI 1302:WRCT 971:ISBN 848:2019 645:INCR 635:CASE 572:BIND 465:.Z+8 424:All 377:LLVM 371:and 350:MIPS 296:goto 205:.com 162:MIPS 88:1970 81:1970 1147:Art 998:doi 940:doi 787:doi 568:OWN 545:NEQ 541:GTR 533:EQL 509:END 483:Z=8 449:Z+8 434:VAX 342:VAX 305:or 154:VAX 1581:: 1004:. 994:32 992:. 988:. 946:. 936:14 934:. 928:. 896:, 886:^ 870:. 850:. 838:. 819:. 793:. 783:32 781:. 777:. 752:^ 678:: 523:IF 443:A 411:, 352:, 348:, 344:, 340:, 336:, 326:. 286:, 185:OS 176:, 172:, 168:, 164:, 160:, 156:, 152:, 148:, 37:, 1097:e 1090:t 1083:v 1012:. 1000:: 977:. 954:. 942:: 823:. 801:. 789:: 617:. 600:. 590:. 479:= 278:- 262:C 209:/ 90:) 45:) 41:( 20:.

Index

Bliss
Paradigm
Structured
imperative
procedural
Designed by
W. A. Wulf
A. N. Habermann
Developer
Carnegie Mellon University
Stable release
Typing discipline
Typeless
Scope
Lexical
Platform
PDP-10
PDP-11
VAX
PRISM
MIPS
DEC Alpha
IA-32
IA-64
x86-64
OS
Cross-platform
pdp-10.trailing-edge.com/bb-m836d-bm/
Dialects
ALGOL

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