Knowledge (XXG)

System programming language

Source 📝

1118: 43: 241:(I/O) facilities because a system-software project usually develops its own I/O mechanisms or builds on basic monitor I/O or screen management facilities. The distinction between languages used for system programming and application programming became blurred over time with the widespread popularity of 321:
While PL360 is at the semantic level of assembly language, another kind of system programming language operates at a higher semantic level, but has specific extensions designed to make the language suitable for system programming. An early example of this kind of language is LRLTRAN, which extended
329:
could be developed that generated efficient object programs on modest hardware. Such a language generally omits features that cannot be implemented efficiently, and adds a small number of machine-dependent features needed to access specific hardware abilities;
277:
Mid-level languages "have much of the syntax and facilities of a higher level language, but also provide direct access in the language (as well as providing assembly language) to machine features." The earliest of these was
232:
In contrast with application languages, system programming languages typically offer more-direct access to the physical hardware of the machine: an archetypical system programming language in this sense was
313:, signifying that registers 8 and 7 should be and'ed together, the result shifted left 8 bits, the result of that or'ed with the contents of register 6, and the final result placed into register 9. 170:
General-purpose programming languages tend to focus on generic features to allow programs written in the language to use the same code on different platforms. Examples of such languages include
181:
System languages, in contrast, are designed not for compatibility, but for performance and ease of access to the underlying hardware while still providing high-level programming concepts like
265:
primarily because there was no alternative, but also for reasons including efficiency of object code, compilation time, and ease of debugging. Application languages such as
178:. This generic quality typically comes at the cost of denying direct access to the machine's internal workings, and this often has negative effects on performance. 1344: 60: 623: 395: 279: 186: 1263:
Mendicino, Sam F.; Hughes, Robert A.; Martin, Jeanne T.; McMahon, Frank H.; Ranelletti, John E.; Zwakenberg, Richard G. (1968). "The LRLTRAN Compiler".
1185:. IFIP Working Conference on Machine Oriented Higher Level Languages (MOHL). Trondheim, Norway: International Federation for Information Processing. 1507: 1497: 107: 79: 126: 325:
Subsequently, languages such as C were developed, where the combination of features was sufficient to write system software, and a
86: 1465: 549: 776: 1443: 197:
in syntax but tuned to their respective platforms. Others are cross-platform but designed to work close to the hardware, like
994: 632: 377: 93: 64: 998: 956: 921: 913: 879: 867: 824: 816: 495: 413: 250: 212:
Some languages straddle the system and application domains, bridging the gap between these uses. The canonical example is
175: 269:
were used for system programming, although they usually still required some routines to be written in assembly language.
1156: 1022: 964: 221: 190: 75: 31: 1123: 1099: 1047: 1002: 977: 960: 937: 875: 605: 217: 1072: 968: 871: 856: 798: 530: 53: 1131: 1095: 900: 771: 593: 1502: 1083: 1043: 1035: 948: 917: 834: 749: 715: 587: 570: 246: 216:, which is used widely for both system and application programming. Some modern languages also do this such as 213: 298:
but whose statements directly manipulated CPU registers and memory. Other languages in this category include
1290:
Wulf, W. A.; Russell, D. B.; Haberman, A. N. (December 1971). "BLISS: A Language for Systems Programming".
1299: 728: 182: 100: 465: 400: 322:
Fortran with features for character and bit manipulation, pointers, and directly addressed jump tables.
1327: 144: 1304: 155:, which usually requires different development approaches when compared with application software. 829:
Military, aerospace mass transportation, high-integrity computation, and operating system kernels
156: 148: 930: 741: 429: 340:
statement, is often used for this purpose. Although many such languages were developed, C and
262: 1309: 1272: 1245: 1213: 1007: 982: 17: 690: 611: 513: 331: 152: 703: 575: 291: 1473: 1491: 1233: 891: 763: 759: 500: 477: 283: 1447: 1015: 839: 803: 238: 1358: 1117: 1039: 42: 1113: 1027: 926: 1136: 597: 1313: 1276: 1249: 1218: 1201: 1011: 887: 812: 784: 619: 408: 385: 326: 295: 1400: 1091: 1060: 789: 677: 628: 541: 508: 488: 440: 299: 266: 1405: 1345:"What programming languages are used for equipment onboard aircraft?" 905: 753: 723: 517: 372: 202: 1387:"M2OS. RTOS with simple tasking support for small microcontrollers" 1087: 990: 952: 883: 847: 820: 736: 341: 1052: 710: 525: 472: 287: 198: 194: 171: 1181:
van der Poel, W. L.; Maarssen, L. A., eds. (27–31 August 1973).
1064: 698: 685: 671: 658: 639: 583: 561: 460: 447: 420: 303: 242: 234: 206: 1372: 1236:(1968). "PL360, A Programming Language for the 360 Computers". 1056: 663: 452: 425: 36: 1420: 1202:"Brief Survey of Languages Used for Systems Implementation" 1386: 335: 282:on Burroughs mainframes in about 1960, followed by 237:. System programming languages often lack built-in 67:. Unsourced material may be challenged and removed. 680:(versions 1 and 2 only), IBM mainframe firmware 1328:"Case Study, BAE Systems Eurofighter Typhoon" 555:R. Daniel Bergeron, et al. (Brown University) 8: 1176: 1174: 309:As an example, a typical PL360 statement is 261:The earliest system software was written in 351: 290:(first written on a Burroughs system as a 151:; such languages are designed for writing 30:For the HP language of the same name, see 1303: 1217: 127:Learn how and when to remove this message 1195: 1193: 1466:"PL/I as a Tool for System Programming" 1183:Machine oriented higher level languages 1170: 1148: 731:subsystems, most compilers, FSE editor 27:Class of computer programming languages 161:machine oriented high order languages 7: 65:adding citations to reliable sources 1359:"TGVweb - the TGV Signaling System" 294:), which had the general syntax of 25: 311:R9 := R8 and R7 shll 8 or R6 1464:Corbató, Fernando (1969-05-06). 1116: 550:Language for Systems Development 41: 193:, both of which are similar to 159:referred to these languages as 52:needs additional citations for 390:Many systems, mostly military 378:System Development Corporation 1: 1508:Systems programming languages 1200:Sammet, Jean (October 1971). 344:are the ones which survived. 76:"System programming language" 1157:Automatic Reference Counting 32:Systems Programming Language 18:Systems programming language 1498:Programming language topics 1444:"Mozilla Research Projects" 1187:Proceedings published 1974. 1124:Computer programming portal 631:system software, including 606:System Programming Language 141:system programming language 1524: 531:Carnegie Mellon University 437:ALGOL, FORTRAN, some COBOL 29: 1292:Communications of the ACM 1265:Communications of the ACM 762:, Windows, etc.), games ( 594:operating system kernels 1472:: 68–76. Archived from 1132:Ousterhout's dichotomy 676:compiler development, 317:Higher-level languages 183:structured programming 1314:10.1145/362919.362936 1277:10.1145/364139.364154 1250:10.1145/321439.321442 1219:10.1145/942596.807055 466:OS/360 and successors 401:Burroughs Corporation 145:programming language 61:improve this article 1401:"Jgrivera67/HiRTOS" 1206:ACM SIGPLAN Notices 273:Mid-level languages 185:. Examples include 1238:Journal of the ACM 758:GUI applications ( 334:code, such as C's 149:system programming 1107: 1106: 1067:app development 742:Bjarne Stroustrup 263:assembly language 137: 136: 129: 111: 16:(Redirected from 1515: 1484: 1482: 1481: 1452: 1451: 1446:. Archived from 1440: 1434: 1433: 1431: 1430: 1417: 1411: 1410: 1397: 1391: 1390: 1383: 1377: 1376: 1369: 1363: 1362: 1355: 1349: 1348: 1341: 1335: 1334: 1332: 1324: 1318: 1317: 1307: 1287: 1281: 1280: 1260: 1254: 1253: 1230: 1224: 1223: 1221: 1197: 1188: 1186: 1178: 1159: 1153: 1126: 1121: 1120: 983:Mozilla Research 806:, S. Tucker Taft 520:, UCSD p-System 352: 339: 338: 312: 132: 125: 121: 118: 112: 110: 69: 45: 37: 21: 1523: 1522: 1518: 1517: 1516: 1514: 1513: 1512: 1503:System software 1488: 1487: 1479: 1477: 1463: 1460: 1455: 1442: 1441: 1437: 1428: 1426: 1424:www.modular.com 1419: 1418: 1414: 1399: 1398: 1394: 1385: 1384: 1380: 1371: 1370: 1366: 1357: 1356: 1352: 1343: 1342: 1338: 1330: 1326: 1325: 1321: 1305:10.1.1.691.9765 1298:(12): 780–790. 1289: 1288: 1284: 1271:(11): 747–755. 1262: 1261: 1257: 1232: 1231: 1227: 1199: 1198: 1191: 1180: 1179: 1172: 1168: 1163: 1162: 1154: 1150: 1145: 1122: 1115: 1112: 691:Honeywell, Inc. 612:Hewlett-Packard 514:Apollo Computer 350: 348:Major languages 336: 332:inline assembly 319: 310: 275: 259: 230: 157:Edsger Dijkstra 153:system software 133: 122: 116: 113: 70: 68: 58: 46: 35: 28: 23: 22: 15: 12: 11: 5: 1521: 1519: 1511: 1510: 1505: 1500: 1490: 1489: 1486: 1485: 1459: 1458:External links 1456: 1454: 1453: 1450:on 2014-01-04. 1435: 1421:"Modular Inc." 1412: 1392: 1378: 1364: 1350: 1336: 1319: 1282: 1255: 1234:Wirth, Niklaus 1225: 1189: 1169: 1167: 1164: 1161: 1160: 1147: 1146: 1144: 1141: 1140: 1139: 1134: 1128: 1127: 1111: 1108: 1105: 1104: 1102: 1081: 1078: 1077:Andrew Kelley 1075: 1069: 1068: 1050: 1033: 1030: 1025: 1019: 1018: 1005: 988: 985: 980: 974: 973: 971: 946: 943: 940: 934: 933: 924: 911: 908: 903: 897: 896: 894: 865: 862: 859: 853: 852: 850: 845: 842: 837: 831: 830: 827: 810: 807: 801: 795: 794: 792: 787: 782: 779: 774: 768: 767: 756: 747: 744: 739: 733: 732: 726: 721: 718: 713: 707: 706: 701: 696: 693: 688: 682: 681: 674: 669: 666: 661: 655: 654: 651: 648: 645: 642: 636: 635: 626: 617: 614: 609: 602: 601: 590: 581: 578: 576:Dennis Ritchie 573: 567: 566: 564: 559: 556: 553: 546: 545: 539: 536: 533: 528: 522: 521: 511: 506: 503: 498: 492: 491: 486: 483: 480: 475: 469: 468: 463: 458: 455: 450: 444: 443: 438: 435: 432: 423: 417: 416: 411: 406: 403: 398: 392: 391: 388: 383: 380: 375: 369: 368: 365: 362: 359: 356: 349: 346: 318: 315: 292:cross compiler 274: 271: 258: 255: 229: 226: 135: 134: 49: 47: 40: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1520: 1509: 1506: 1504: 1501: 1499: 1496: 1495: 1493: 1476:on 2012-09-21 1475: 1471: 1467: 1462: 1461: 1457: 1449: 1445: 1439: 1436: 1425: 1422: 1416: 1413: 1408: 1407: 1402: 1396: 1393: 1388: 1382: 1379: 1374: 1368: 1365: 1360: 1354: 1351: 1346: 1340: 1337: 1329: 1323: 1320: 1315: 1311: 1306: 1301: 1297: 1293: 1286: 1283: 1278: 1274: 1270: 1266: 1259: 1256: 1251: 1247: 1243: 1239: 1235: 1229: 1226: 1220: 1215: 1211: 1207: 1203: 1196: 1194: 1190: 1184: 1177: 1175: 1171: 1165: 1158: 1152: 1149: 1142: 1138: 1135: 1133: 1130: 1129: 1125: 1119: 1114: 1109: 1103: 1101: 1097: 1093: 1089: 1085: 1082: 1079: 1076: 1074: 1071: 1070: 1066: 1062: 1058: 1054: 1051: 1049: 1045: 1041: 1037: 1034: 1031: 1029: 1026: 1024: 1021: 1020: 1017: 1013: 1009: 1006: 1004: 1000: 996: 992: 989: 986: 984: 981: 979: 976: 975: 972: 970: 966: 962: 958: 954: 950: 947: 944: 942:Modular Inc. 941: 939: 936: 935: 932: 928: 925: 923: 919: 915: 912: 909: 907: 904: 902: 899: 898: 895: 893: 892:Object Pascal 889: 885: 881: 877: 873: 869: 866: 863: 861:Andreas Rumpf 860: 858: 855: 854: 851: 849: 846: 843: 841: 838: 836: 833: 832: 828: 826: 822: 818: 814: 811: 808: 805: 802: 800: 797: 796: 793: 791: 788: 786: 783: 780: 778: 775: 773: 770: 769: 765: 764:Unreal Engine 761: 757: 755: 751: 748: 745: 743: 740: 738: 735: 734: 730: 727: 725: 722: 719: 717: 714: 712: 709: 708: 705: 702: 700: 697: 694: 692: 689: 687: 684: 683: 679: 675: 673: 670: 667: 665: 662: 660: 657: 656: 652: 649: 646: 643: 641: 638: 637: 634: 630: 627: 625: 621: 618: 615: 613: 610: 607: 604: 603: 599: 595: 591: 589: 585: 582: 579: 577: 574: 572: 569: 568: 565: 563: 560: 557: 554: 551: 548: 547: 543: 540: 537: 534: 532: 529: 527: 524: 523: 519: 516:Aegis, Apple 515: 512: 510: 507: 504: 502: 501:Niklaus Wirth 499: 497: 494: 493: 490: 487: 484: 481: 479: 478:Niklaus Wirth 476: 474: 471: 470: 467: 464: 462: 459: 456: 454: 451: 449: 446: 445: 442: 439: 436: 433: 431: 427: 424: 422: 419: 418: 415: 412: 410: 407: 404: 402: 399: 397: 394: 393: 389: 387: 384: 381: 379: 376: 374: 371: 370: 366: 364:Influenced by 363: 360: 357: 354: 353: 347: 345: 343: 333: 328: 323: 316: 314: 307: 305: 301: 297: 293: 289: 285: 284:Niklaus Wirth 281: 272: 270: 268: 264: 256: 254: 252: 248: 244: 240: 236: 227: 225: 223: 219: 215: 210: 208: 204: 200: 196: 192: 188: 184: 179: 177: 173: 168: 166: 162: 158: 154: 150: 146: 142: 131: 128: 120: 109: 106: 102: 99: 95: 92: 88: 85: 81: 78: –  77: 73: 72:Find sources: 66: 62: 56: 55: 50:This article 48: 44: 39: 38: 33: 19: 1478:. Retrieved 1474:the original 1469: 1448:the original 1438: 1427:. Retrieved 1423: 1415: 1404: 1395: 1381: 1367: 1353: 1339: 1322: 1295: 1291: 1285: 1268: 1264: 1258: 1244:(1): 37–74. 1241: 1237: 1228: 1209: 1205: 1182: 1151: 1016:Linux kernel 840:Digital Mars 804:Jean Ichbiah 650:ESPOL, ALGOL 596:, including 324: 320: 308: 276: 260: 239:input/output 231: 211: 180: 169: 164: 160: 140: 138: 123: 114: 104: 97: 90: 83: 71: 59:Please help 54:verification 51: 1212:(9): 1–19. 1155:Swift uses 1040:Objective-C 544:(portions) 1492:Categories 1480:2012-01-23 1470:Datamation 1429:2024-03-25 1373:"Ironclad" 1166:References 1028:Apple Inc. 927:Kubernetes 538:ALGOL-PL/I 361:Birth date 358:Originator 117:April 2022 87:newspapers 1300:CiteSeerX 1137:PreScheme 644:Burroughs 598:Unix-like 367:Used for 147:used for 1110:See also 1012:Redox OS 888:Modula-3 813:ALGOL 68 785:ALGOL 68 620:ALGOL 60 600:systems 485:ALGOL 60 409:ALGOL 60 386:ALGOL 58 355:Language 327:compiler 296:ALGOL 60 228:Features 1092:LLVM IR 1061:watchOS 995:Haskell 790:ICL VME 629:HP 3000 509:ALGOL W 489:ALGOL W 441:Multics 300:MOL-360 267:FORTRAN 257:History 101:scholar 1406:GitHub 1302:  1063:, and 999:Erlang 957:Python 931:Docker 922:Pascal 914:Oberon 906:Google 880:Oberon 868:Python 825:Eiffel 817:Pascal 754:Simula 724:JOVIAL 720:1970's 695:1970's 668:1970's 647:1970's 518:MacApp 496:Pascal 457:1960's 373:JOVIAL 251:Pascal 203:JOVIAL 176:Pascal 103:  96:  89:  82:  74:  1331:(PDF) 1143:Notes 1080:2016 1053:macOS 1023:Swift 1008:Servo 965:Swift 945:2023 781:1980s 711:SYMPL 624:ESPOL 608:(SPL) 592:Most 552:(LSD) 526:BLISS 473:PL360 430:SHARE 396:ESPOL 288:PL360 280:ESPOL 222:Swift 199:BLISS 195:ALGOL 187:ESPOL 172:ALGOL 165:mohol 163:, or 143:is a 108:JSTOR 94:books 1100:Rust 1065:tvOS 1048:Rust 1032:2014 1003:Ruby 987:2010 978:Rust 961:Rust 938:Mojo 910:2009 876:Lisp 864:2008 844:2001 809:1983 746:1979 704:CP-6 699:PL/I 686:PL-6 672:PL/I 659:PL.8 653:MCP 640:NEWP 616:1972 584:BCPL 580:1972 562:PL/I 558:1971 535:1970 505:1970 482:1968 461:PL/I 448:PL/S 434:1964 421:PL/I 405:1961 382:1960 304:PL/S 302:and 249:and 243:PL/I 235:BCPL 220:and 218:Rust 207:BCPL 205:and 189:and 174:and 80:news 1310:doi 1273:doi 1246:doi 1214:doi 1088:C++ 1073:Zig 1057:iOS 991:C++ 969:Zig 953:C++ 884:C++ 872:Ada 857:Nim 848:C++ 821:C++ 799:Ada 777:ICL 737:C++ 729:NOS 716:CDC 678:AIX 664:IBM 633:MPE 542:VMS 453:IBM 426:IBM 414:MCP 342:C++ 337:asm 286:'s 191:SPL 63:by 1494:: 1468:. 1403:. 1308:. 1296:14 1294:. 1269:11 1267:. 1242:15 1240:. 1208:. 1204:. 1192:^ 1173:^ 1098:, 1096:Go 1094:, 1090:, 1086:, 1059:, 1055:, 1046:, 1042:, 1038:, 1014:, 1010:, 1001:, 997:, 993:, 967:, 963:, 959:, 955:, 951:, 929:, 920:, 916:, 901:Go 890:, 886:, 882:, 878:, 874:, 870:, 823:, 819:, 815:, 772:S3 766:) 760:Qt 752:, 622:, 586:, 428:, 306:. 253:. 245:, 224:. 209:. 201:, 167:. 139:A 1483:. 1432:. 1409:. 1389:. 1375:. 1361:. 1347:. 1333:. 1316:. 1312:: 1279:. 1275:: 1252:. 1248:: 1222:. 1216:: 1210:6 1084:C 1044:D 1036:C 949:C 918:C 835:D 750:C 588:B 571:C 247:C 214:C 130:) 124:( 119:) 115:( 105:· 98:· 91:· 84:· 57:. 34:. 20:)

Index

Systems programming language
Systems Programming Language

verification
improve this article
adding citations to reliable sources
"System programming language"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
programming language
system programming
system software
Edsger Dijkstra
ALGOL
Pascal
structured programming
ESPOL
SPL
ALGOL
BLISS
JOVIAL
BCPL
C
Rust
Swift
BCPL

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