256:
interpretation, and intermediate code files; which often result in execution of far more operations than necessary, higher memory consumption, and larger binary program size. For this reason, code which needs to run particularly quickly and efficiently may require the use of a lower-level language, even if a higher-level language would make the coding easier. In many cases, critical portions of a program mostly in a high-level language can be hand-coded in
752:
485:
306:
271:
architectures, well-designed compilers for high-level languages frequently produce code comparable in efficiency to what most low-level programmers can produce by hand, and the higher abstraction may allow for more powerful techniques providing better overall results than their low-level counterparts
233:
features, and file input/output, may also be present. One thing to note about high-level programming languages is that these languages allow the programmer to be detached and separated from the machine. That is, unlike low-level languages like assembly or machine language, high-level programming can
255:
is the cost that high-level programming techniques pay for being unable to optimize performance or use certain hardware because they don't take advantage of certain low-level architectural resources. High-level programming exhibits features like more generic data structures and operations, run-time
596:
reads each program statement, following the program flow, then decides what to do, and does it. A hybrid of an interpreter and a compiler will compile the statement into machine code and execute that; the machine code is then discarded, to be interpreted anew if the line is executed again.
289:, meaning that programs and libraries written in Java will continue to be usable even if a programming shop switches to Scala; this makes the transition easier and the lifespan of such high-level coding indefinite. In contrast, low-level programs rarely survive beyond the
705:
have both been interpreted (even though they were more typically compiled). Similarly, Java shows the difficulty of trying to apply these labels to languages, rather than to implementations; Java is compiled to bytecode which is then executed by either interpreting (in a
280:
program. High-level languages can be improved as their designers develop improvements. In other cases, new high-level languages evolve from one or more others with the goal of aggregating the most popular constructs with new or improved features. An example of this is
234:
amplify the programmer's instructions and trigger a lot of data movements in the background without their knowledge. The responsibility and power of executing instructions have been handed over to the machine from the programmer.
242:
High-level languages intend to provide features that standardize common tasks, permit rich debugging, and maintain architectural agnosticism; while low-level languages often produce more efficient code through
886:
Two high level programming languages which can be used here as examples to illustrate the structure and purpose of autocodes are COBOL (Common
Business Oriented Language) and FORTRAN (Formular Translation).
67:), making the process of developing a program simpler and more understandable than when using a lower-level language. The amount of abstraction provided defines how "high-level" a programming language is.
424:(no garbage collection, etc.), basically supports only scalar operations, and provides direct memory addressing; it therefore, readily blends with assembly language and the machine level of
921:(1997). "Konrad Zuse's Plankalkül: The First High-Level "non von Neumann" Programming Language". IEEE Annals of the History of Computing, vol. 19, no. 2, pp. 17–24, April–June, 1997.
635:, that representation can be optimized or saved for later execution without the need to re-read the source file. When the intermediate representation is saved, it may be in a form such as
714:, again in a JVM). Moreover, compiling, transcompiling, and interpreting is not strictly limited to only a description of the compiler artifact (binary executable or IL assembly).
643:
that execute bytecode directly or transform it further into machine code have blurred the once clear distinction between intermediate representations and truly compiled languages.
1244:
722:
Alternatively, it is possible for a high-level language to be directly implemented by a computer – the computer directly executes the HLL code. This is known as a
1056:
Chatzigeorgiou; Stephanides (2002). "Evaluating
Performance and Power Of Object-Oriented Vs. Procedural Programming Languages". In Blieberger; Strohmeier (eds.).
1128:
617:. This is the original mode of compilation, and languages that are directly and completely transformed to machine-native code in this way may be called
911:
502:
322:
17:
983:
1408:
1237:
276:. This facilitates executing a program written in such a language on any computing system with compatible support for the Interpreted or
765:
653:
Code written in a language may be translated into terms of a lower-level language for which native code compilers are already common.
1403:
810:
770:
724:
597:
Interpreters are commonly the simplest implementations of the behavior of a language, compared to the other two variants listed here.
99:. However, it was not implemented in his time, and his original contributions were largely isolated from other developments due to
1230:
1337:
1327:
549:
1385:
1342:
1332:
1322:
1030:
1094:
521:
1299:
775:
205:. Rather than dealing with registers, memory addresses, and call stacks, high-level languages deal with variables, arrays,
673:
as examples. Specifically, the generated C and C++ code can be seen (as generated from the Eiffel language when using the
412:, and similar languages, were most often considered "high-level", as it supported concepts such as expression evaluation,
528:
293:
which they were written for without major revision. This is the engineering 'trade-off' for the 'Abstraction
Penalty'.
1194:
1153:
1104:
568:
344:
1314:
666:
535:
455:, as it supports concepts such as constants and (limited) expressions, sometimes even variables, procedures, and
1374:
1289:
879:
837:
790:
780:
506:
390:
326:
168:
53:
45:
1080:
Proceedings of the 2006 International
Conference on Compilers, Architecture and Synthesis for Embedded Systems
1304:
950:
670:
370:
358:
1072:
517:
898:
856:
282:
225:, high-level languages have few, if any, language elements that translate directly into a machine's native
152:
757:
681:
process is referred to as transcompiling or transcompiled, and the Eiffel compiler as a transcompiler or
632:
394:
386:
286:
230:
186:
63:, be easier to use, or may automate (or even hide entirely) significant areas of computing systems (e.g.
844:
The 'high' level programming languages are often called autocodes and the processor program, a compiler.
607:, its syntax is transformed into an executable form before running. There are two types of compilation:
1363:
958:
447:
Assembly language may itself be regarded as a higher level (but often still one-to-one if used without
433:
420:
was considered "low-level". Today, many programmers might refer to C as low-level, as it lacks a large
976:
711:
682:
214:
206:
182:
1015:
697:
languages. Rather, implementations of language behavior use interpreting or compiling. For example,
658:
448:
409:
277:
733:
495:
315:
592:, its syntax is read and then executed directly, with no compilation stage. A program called an
961:
thus included reference-parameters (The related C-language family instead allowed addresses as
156:
1058:
Proceedings - 7th
International Conference on Reliable Software Technologies - Ada-Europe'2002
639:. The intermediate representation must then be interpreted or further compiled to execute it.
272:
in particular settings. High-level languages are designed independent of a specific computing
1002:
729:
542:
290:
273:
248:
1282:
1253:
785:
707:
589:
261:
244:
173:
41:
814:
8:
1186:
1122:
922:
892:
850:
210:
190:
131:
defined in 1960 by committees of
European and American computer scientists, introduced
1277:
1272:
1190:
1159:
1149:
1100:
934:
916:
875:
833:
622:
604:
417:
257:
222:
104:
64:
1182:
202:
136:
57:
33:
1071:
Manuel Carro; José F. Morales; Henk L. Muller; G. Puebla; M. Hermenegildo (2006).
1070:
1034:
1222:
1143:
640:
468:
437:
429:
456:
441:
421:
268:
1397:
1177:
Chu, Yaohan (1975), "Concepts of High-Level
Language Computer Architecture",
1163:
937:, which could be a problem in some situations. Several successors, including
677:
IDE) in the EIFGENs directory of any compiled Eiffel project. In Eiffel, the
144:
140:
581:
There are three general modes of execution for modern high-level languages:
92:
1267:
1212:
674:
662:
614:
460:
452:
366:
260:, leading to a much faster, more efficient, or simply reliably functioning
148:
100:
1216:
732:
itself is designed to be targeted by a specific high-level language. The
357:
Examples of high-level programming languages in active use today include
96:
1031:"The Data Abstraction Penalty (DAP) Benchmark for Small Objects in Java"
143:. ALGOL 60 was also the first language with a clear distinction between
654:
509: in this section. Unsourced material may be challenged and removed.
382:
362:
329: in this section. Unsourced material may be challenged and removed.
217:, locks, and other abstract computer science concepts, with a focus on
874:. 24 Russell Square London WC1: Faber and Faber Limited. p. 186.
832:. 24 Russell Square London WC1: Faber and Faber Limited. p. 184.
464:
413:
218:
201:"High-level language" refers to the higher level of abstraction from
132:
103:, aside from the language's influence on the "Superplan" language by
91:
The first high-level programming language designed for computers was
751:
710:(JVM)) or compiling (typically with a just-in-time compiler such as
484:
305:
942:
737:
698:
636:
128:
124:
116:
76:
71:
49:
938:
702:
112:
85:
27:
Programming language that abstracts details of computing hardware
954:
946:
226:
463:, in turn, is inherently at a slightly higher level than the
178:
120:
111:. The first significantly widespread high-level language was
108:
81:
717:
374:
416:
recursive functions, and data types and structures, while
1055:
425:
378:
70:
In the 1960s, a high-level programming language using a
1073:"High-level languages for small devices: a case study"
444:, C is described as "not a very high level" language.
115:, a machine-independent development of IBM's earlier
747:
229:. Other features, such as string handling routines,
171:was the first to be described in formal notation –
1252:
631:When code written in a language is compiled to an
221:over optimal program efficiency. Unlike low-level
613:Some compilers compile source code directly into
1395:
1148:(2nd ed.). San Francisco: No Starch Press.
1127:: CS1 maint: bot: original URL status unknown (
1093:Kernighan, Brian W.; Ritchie, Dennis M. (1988).
1092:
1109:. Archived from the original on 25 October 2022
408:are inherently relative. Some decades ago, the
267:However, with the growing complexity of modern
1219:'s article on high-level programming languages
1141:
193:in a programming language for the first time.
1238:
661:are common targets for such translators. See
650:Source-to-source translated or transcompiled
285:which maintains backward compatibility with
977:"Meta-Compilation of Language Abstractions"
1245:
1231:
766:Generational list of programming languages
1179:High-Level Language Computer Architecture
771:Categorical list of programming languages
725:high-level language computer architecture
718:High-level language computer architecture
569:Learn how and when to remove this message
345:Learn how and when to remove this message
1213:http://c2.com/cgi/wiki?HighLevelLanguage
974:
870:London, Keith (1968). "4, Programming".
828:London, Keith (1968). "4, Programming".
1096:The C Programming Language: 2nd Edition
432:. Also, in the introduction chapter of
177:(BNF). During roughly the same period,
14:
1396:
869:
863:
827:
237:
1226:
1028:
989:from the original on 17 February 2015
821:
776:Very high-level programming languages
689:Note that languages are not strictly
507:adding citations to reliable sources
478:
471:used internally in many processors.
327:adding citations to reliable sources
300:
213:, subroutines and functions, loops,
1409:Programming language classification
1176:
603:When code written in a language is
588:When code written in a language is
296:
24:
1187:10.1016/b978-0-12-174150-1.50007-0
474:
25:
1420:
1206:
1404:High-level programming languages
750:
483:
304:
155:. ALGOL also introduced several
18:High-level programming languages
1170:
1135:
1086:
933:Although it lacked a notion of
781:Low-level programming languages
494:needs additional citations for
314:needs additional citations for
54:low-level programming languages
38:high-level programming language
1254:Types of programming languages
1064:
1049:
1022:
968:
927:
905:
803:
791:Abstraction (computer science)
13:
1:
1354:
796:
1386:Programming paradigms navbox
1145:The art of assembly language
628:Intermediate representations
80:. Examples of autocodes are
7:
1181:, Elsevier, pp. 1–14,
758:Computer programming portal
743:
633:intermediate representation
196:
189:introduced a fully general
10:
1425:
434:The C Programming Language
185:(also called structs) and
1313:
1260:
872:Introduction to Computers
830:Introduction to Computers
736:were target machines for
683:source-to-source compiler
1060:. Springer. p. 367.
897:: CS1 maint: location (
855:: CS1 maint: location (
811:"HThreads - RD Glossary"
231:object-oriented language
209:, complex arithmetic or
151:and their corresponding
107:and also to some degree
48:from the details of the
1142:Hyde, Randall. (2010).
734:Burroughs large systems
610:Machine code generation
74:was commonly called an
1010:Cite journal requires
159:concepts, such as the
157:structured programming
1375:Programming languages
730:computer architecture
935:reference-parameters
786:High-level assembler
708:Java virtual machine
503:improve this article
451:) representation of
436:(second edition) by
323:improve this article
127:defined in 1958 and
42:programming language
912:Giloi, Wolfgang, K.
291:system architecture
274:system architecture
253:Abstraction penalty
249:system architecture
238:Abstraction penalty
211:Boolean expressions
167:constructs and its
1037:on 11 January 2009
817:on 26 August 2007.
223:assembly languages
191:lambda abstraction
1364:Computer language
1351:
1350:
1099:. Prentice Hall.
975:Surana P (2006).
657:and the language
623:assembly language
579:
578:
571:
553:
518:"Execution modes"
418:assembly language
397:and many others.
355:
354:
347:
262:optimised program
258:assembly language
105:Heinz Rutishauser
65:memory management
52:. In contrast to
16:(Redirected from
1416:
1390:
1384:
1379:
1373:
1368:
1362:
1247:
1240:
1233:
1224:
1223:
1200:
1199:
1174:
1168:
1167:
1139:
1133:
1132:
1126:
1118:
1116:
1114:
1090:
1084:
1083:
1077:
1068:
1062:
1061:
1053:
1047:
1046:
1044:
1042:
1033:. Archived from
1026:
1020:
1019:
1013:
1008:
1006:
998:
996:
994:
988:
981:
972:
966:
964:
931:
925:
920:
909:
903:
902:
896:
888:
867:
861:
860:
854:
846:
825:
819:
818:
813:. Archived from
807:
760:
755:
754:
641:Virtual machines
574:
567:
563:
560:
554:
552:
511:
487:
479:
469:micro-operations
430:microcontrollers
350:
343:
339:
336:
330:
308:
301:
297:Relative meaning
203:machine language
174:Backus–Naur form
166:
162:
137:nested functions
58:natural language
34:computer science
21:
1424:
1423:
1419:
1418:
1417:
1415:
1414:
1413:
1394:
1393:
1388:
1382:
1377:
1371:
1366:
1360:
1357:
1352:
1347:
1309:
1300:Very high-level
1256:
1251:
1209:
1204:
1203:
1197:
1175:
1171:
1156:
1140:
1136:
1120:
1119:
1112:
1110:
1107:
1091:
1087:
1075:
1069:
1065:
1054:
1050:
1040:
1038:
1027:
1023:
1011:
1009:
1000:
999:
992:
990:
986:
979:
973:
969:
962:
932:
928:
914:
910:
906:
890:
889:
882:
868:
864:
848:
847:
840:
826:
822:
809:
808:
804:
799:
756:
749:
746:
740:, for example.
720:
621:languages. See
575:
564:
558:
555:
512:
510:
500:
488:
477:
475:Execution modes
457:data structures
438:Brian Kernighan
351:
340:
334:
331:
320:
299:
247:for a specific
240:
199:
164:
160:
149:name-parameters
28:
23:
22:
15:
12:
11:
5:
1422:
1412:
1411:
1406:
1392:
1391:
1380:
1369:
1356:
1353:
1349:
1348:
1346:
1345:
1340:
1335:
1330:
1325:
1319:
1317:
1311:
1310:
1308:
1307:
1302:
1297:
1292:
1286:
1285:
1280:
1275:
1270:
1264:
1262:
1258:
1257:
1250:
1249:
1242:
1235:
1227:
1221:
1220:
1208:
1207:External links
1205:
1202:
1201:
1195:
1169:
1154:
1134:
1105:
1085:
1063:
1048:
1021:
1012:|journal=
967:
926:
904:
880:
862:
838:
820:
801:
800:
798:
795:
794:
793:
788:
783:
778:
773:
768:
762:
761:
745:
742:
719:
716:
687:
686:
651:
647:
646:
645:
644:
629:
626:
619:truly compiled
611:
601:
598:
586:
577:
576:
491:
489:
482:
476:
473:
442:Dennis Ritchie
422:runtime-system
353:
352:
311:
309:
298:
295:
269:microprocessor
239:
236:
198:
195:
26:
9:
6:
4:
3:
2:
1421:
1410:
1407:
1405:
1402:
1401:
1399:
1387:
1381:
1376:
1370:
1365:
1359:
1358:
1344:
1341:
1339:
1336:
1334:
1331:
1329:
1326:
1324:
1321:
1320:
1318:
1316:
1312:
1306:
1303:
1301:
1298:
1296:
1293:
1291:
1288:
1287:
1284:
1281:
1279:
1276:
1274:
1271:
1269:
1266:
1265:
1263:
1259:
1255:
1248:
1243:
1241:
1236:
1234:
1229:
1228:
1225:
1218:
1214:
1211:
1210:
1198:
1196:9780121741501
1192:
1188:
1184:
1180:
1173:
1165:
1161:
1157:
1155:9781593273019
1151:
1147:
1146:
1138:
1130:
1124:
1108:
1106:9780131103627
1102:
1098:
1097:
1089:
1081:
1074:
1067:
1059:
1052:
1036:
1032:
1025:
1017:
1004:
985:
978:
971:
965:-parameters).
960:
956:
952:
948:
944:
940:
936:
930:
924:
918:
913:
908:
900:
894:
887:
883:
877:
873:
866:
858:
852:
845:
841:
835:
831:
824:
816:
812:
806:
802:
792:
789:
787:
784:
782:
779:
777:
774:
772:
769:
767:
764:
763:
759:
753:
748:
741:
739:
735:
731:
727:
726:
715:
713:
709:
704:
700:
696:
693:languages or
692:
684:
680:
676:
672:
668:
664:
660:
656:
652:
649:
648:
642:
638:
634:
630:
627:
624:
620:
616:
612:
609:
608:
606:
602:
599:
595:
591:
587:
584:
583:
582:
573:
570:
562:
551:
548:
544:
541:
537:
534:
530:
527:
523:
520: –
519:
515:
514:Find sources:
508:
504:
498:
497:
492:This section
490:
486:
481:
480:
472:
470:
466:
462:
458:
454:
450:
445:
443:
439:
435:
431:
427:
423:
419:
415:
414:parameterised
411:
407:
403:
398:
396:
392:
388:
384:
380:
376:
372:
368:
364:
360:
349:
346:
338:
328:
324:
318:
317:
312:This section
310:
307:
303:
302:
294:
292:
288:
284:
279:
275:
270:
265:
263:
259:
254:
250:
246:
235:
232:
228:
224:
220:
216:
212:
208:
204:
194:
192:
188:
184:
180:
176:
175:
170:
158:
154:
150:
146:
142:
141:lexical scope
138:
134:
130:
126:
123:family, with
122:
119:systems. The
118:
114:
110:
106:
102:
98:
95:, created by
94:
89:
87:
83:
79:
78:
73:
68:
66:
62:
59:
56:, it may use
55:
51:
47:
43:
39:
35:
30:
19:
1389:}}
1383:{{
1378:}}
1372:{{
1367:}}
1361:{{
1294:
1178:
1172:
1144:
1137:
1111:. Retrieved
1095:
1088:
1079:
1066:
1057:
1051:
1039:. Retrieved
1035:the original
1024:
1003:cite journal
991:. Retrieved
970:
929:
907:
885:
871:
865:
843:
829:
823:
815:the original
805:
723:
721:
694:
690:
688:
678:
675:EiffelStudio
669:Scheme, and
663:CoffeeScript
618:
615:machine code
593:
580:
565:
559:October 2018
556:
546:
539:
532:
525:
513:
501:Please help
496:verification
493:
461:Machine code
453:machine code
446:
405:
401:
399:
367:Visual Basic
356:
341:
335:October 2018
332:
321:Please help
316:verification
313:
266:
252:
245:optimization
241:
200:
172:
165:if-then-else
101:World War II
90:
75:
69:
60:
44:with strong
37:
31:
29:
1283:Interpreted
1217:WikiWikiWeb
1029:Kuketayev.
915: [
691:interpreted
594:interpreter
590:interpreted
585:Interpreted
181:introduced
135:as well as
97:Konrad Zuse
46:abstraction
1398:Categories
1315:Generation
1295:High-level
1113:25 October
923:(abstract)
881:0571085938
839:0571085938
797:References
679:translated
655:JavaScript
529:newspapers
410:C language
402:high-level
400:The terms
383:ECMAScript
363:JavaScript
93:PlankalkĂĽl
1290:Low-level
1164:635507601
1123:cite book
893:cite book
851:cite book
465:microcode
406:low-level
219:usability
153:semantics
133:recursion
1355:See also
1305:Esoteric
1278:Compiled
1273:Assembly
1041:17 March
993:17 March
984:Archived
943:ALGOL 68
744:See also
738:ALGOL 60
699:ALGOL 60
695:compiled
637:bytecode
605:compiled
600:Compiled
197:Features
161:while-do
129:ALGOL 60
125:ALGOL 58
117:Autocode
77:autocode
72:compiler
61:elements
50:computer
1268:Machine
939:ALGOL W
712:HotSpot
703:Fortran
667:Chicken
543:scholar
227:opcodes
215:threads
207:objects
183:records
113:Fortran
86:Fortran
1338:Fourth
1328:Second
1215:- The
1193:
1162:
1152:
1103:
1082:. ACM.
955:Modula
951:Pascal
947:Simula
878:
836:
728:– the
671:Eiffel
545:
538:
531:
524:
516:
449:macros
371:Delphi
359:Python
169:syntax
139:under
1343:Fifth
1333:Third
1323:First
1261:Level
1076:(PDF)
987:(PDF)
980:(PDF)
963:value
919:]
550:JSTOR
536:books
283:Scala
179:COBOL
145:value
121:ALGOL
109:ALGOL
82:COBOL
40:is a
1191:ISBN
1160:OCLC
1150:ISBN
1129:link
1115:2022
1101:ISBN
1043:2008
1016:help
995:2008
957:and
899:link
876:ISBN
857:link
834:ISBN
701:and
522:news
440:and
428:and
426:CPUs
404:and
395:Java
387:Ruby
375:Perl
287:Java
187:Lisp
163:and
147:and
84:and
36:, a
1183:doi
959:Ada
505:by
467:or
379:PHP
325:by
278:JIT
32:In
1400::
1189:,
1158:.
1125:}}
1121:{{
1078:.
1007::
1005:}}
1001:{{
982:.
953:,
949:,
945:,
941:,
917:de
895:}}
891:{{
884:.
853:}}
849:{{
842:.
665:,
459:.
393:,
391:C#
389:,
385:,
381:,
377:,
373:,
369:,
365:,
361:,
264:.
251:.
88:.
1246:e
1239:t
1232:v
1185::
1166:.
1131:)
1117:.
1045:.
1018:)
1014:(
997:.
901:)
859:)
685:.
659:C
625:.
572:)
566:(
561:)
557:(
547:·
540:·
533:·
526:·
499:.
348:)
342:(
337:)
333:(
319:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.