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