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:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.