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:
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.
60:
17:
107:
623:
395:
279:
186:
79:
325:
Subsequently, languages such as C were developed, where the combination of features was sufficient to write system software, and a
86:
1465:
1507:
1443:
197:
in syntax but tuned to their respective platforms. Others are cross-platform but designed to work close to the hardware, like
93:
1497:
212:
Some languages straddle the system and application domains, bridging the gap between these uses. The canonical example is
269:
were used for system programming, although they usually still required some routines to be written in assembly language.
75:
126:
549:
776:
994:
632:
377:
216:, which is used widely for both system and application programming. Some modern languages also do this such as
64:
998:
956:
921:
913:
879:
867:
824:
816:
495:
413:
298:
but whose statements directly manipulated CPU registers and memory. Other languages in this category include
250:
175:
1290:
Wulf, W. A.; Russell, D. B.; Haberman, A. N. (December 1971). "BLISS: A Language for
Systems Programming".
1156:
1022:
964:
221:
190:
31:
1123:
1099:
1047:
1002:
977:
960:
937:
875:
605:
217:
100:
322:
Fortran with features for character and bit manipulation, pointers, and directly addressed jump tables.
1072:
968:
871:
856:
798:
530:
1327:
1131:
1095:
900:
771:
593:
1304:
1502:
1083:
1043:
1035:
948:
917:
834:
749:
715:
587:
570:
246:
213:
155:, which usually requires different development approaches when compared with application software.
829:
Military, aerospace mass transportation, high-integrity computation, and operating system kernels
53:
1299:
728:
182:
340:
statement, is often used for this purpose. Although many such languages were developed, C and
465:
400:
144:
8:
156:
148:
1473:
930:
741:
429:
262:
1447:
1309:
1272:
1245:
1213:
1007:
982:
690:
611:
513:
331:
152:
1358:
703:
575:
291:
1491:
1233:
891:
763:
759:
500:
477:
283:
1015:
839:
803:
238:
1313:
1276:
1249:
1218:
1201:
1039:
1400:
1027:
926:
1345:"What programming languages are used for equipment onboard aircraft?"
1136:
597:
1117:
42:
1387:"M2OS. RTOS with simple tasking support for small microcontrollers"
1011:
887:
812:
784:
619:
408:
385:
326:
295:
1091:
1060:
789:
677:
628:
541:
508:
488:
440:
299:
266:
1181:
van der Poel, W. L.; Maarssen, L. A., eds. (27–31 August 1973).
1405:
1372:
1236:(1968). "PL360, A Programming Language for the 360 Computers".
905:
753:
723:
517:
372:
202:
1087:
1052:
990:
952:
883:
847:
820:
736:
710:
525:
472:
341:
287:
198:
194:
171:
1262:
1420:
1202:"Brief Survey of Languages Used for Systems Implementation"
1064:
698:
685:
671:
658:
639:
583:
561:
460:
447:
420:
303:
242:
234:
206:
1386:
1056:
663:
452:
425:
1180:
1113:
1289:
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.
1489:
680:(versions 1 and 2 only), IBM mainframe firmware
1328:"Case Study, BAE Systems Eurofighter Typhoon"
555:R. Daniel Bergeron, et al. (Brown University)
1176:
1174:
309:As an example, a typical PL360 statement is
261:The earliest system software was written in
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:
1171:
316:
127:Learn how and when to remove this message
1195:
1193:
1466:"PL/I as a Tool for System Programming"
1463:
1183:Machine oriented higher level languages
731:subsystems, most compilers, FSE editor
27:Class of computer programming languages
14:
1490:
1199:
272:
1232:
1190:
161:machine oriented high order languages
65:adding citations to reliable sources
36:
1359:"TGVweb - the TGV Signaling System"
294:), which had the general syntax of
24:
347:
25:
1519:
1457:
311:R9 := R8 and R7 shll 8 or R6
1464:Corbató, Fernando (1969-05-06).
1116:
550:Language for Systems Development
41:
1436:
1413:
1393:
1379:
1149:
193:, both of which are similar to
159:referred to these languages as
52:needs additional citations for
1365:
1351:
1337:
1320:
1283:
1256:
1226:
390:Many systems, mostly military
378:System Development Corporation
13:
1:
1508:Systems programming languages
1200:Sammet, Jean (October 1971).
1165:
344:are the ones which survived.
76:"System programming language"
1157:Automatic Reference Counting
32:Systems Programming Language
18:Systems programming language
7:
1498:Programming language topics
1444:"Mozilla Research Projects"
1187:Proceedings published 1974.
1124:Computer programming portal
1109:
631:system software, including
606:System Programming Language
227:
141:system programming language
10:
1524:
531:Carnegie Mellon University
437:ALGOL, FORTRAN, some COBOL
256:
29:
1292:Communications of the ACM
1265:Communications of the ACM
762:, Windows, etc.), games (
335:
1142:
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:
351:
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:
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.
1288:
1284:
1271:(11): 747–755.
1261:
1257:
1231:
1227:
1198:
1191:
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:
1511:
1510:
1505:
1500:
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:
9:
6:
4:
3:
2:
1520:
1509:
1506:
1504:
1501:
1499:
1496:
1495:
1493:
1476:on 2012-09-21
1475:
1471:
1467:
1462:
1461:
1449:
1445:
1439:
1425:
1422:
1416:
1408:
1407:
1402:
1396:
1388:
1382:
1374:
1368:
1360:
1354:
1346:
1340:
1329:
1323:
1315:
1311:
1306:
1301:
1297:
1293:
1286:
1278:
1274:
1270:
1266:
1259:
1251:
1247:
1243:
1239:
1235:
1229:
1220:
1215:
1211:
1207:
1203:
1196:
1194:
1184:
1177:
1175:
1170:
1158:
1152:
1148:
1138:
1135:
1133:
1130:
1129:
1125:
1119:
1114:
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:
345:
343:
333:
328:
323:
314:
307:
305:
301:
297:
293:
289:
285:
284:Niklaus Wirth
281:
270:
268:
264:
254:
252:
248:
244:
240:
236:
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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.