Knowledge

System programming language

Source 📝

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

Index

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
input/output

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