Knowledge (XXG)

High-level programming language

Source đź“ť

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 1244: 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.
1128: 502: 322: 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.).
1408: 1237: 765: 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 1403: 770: 724: 1230: 983: 1337: 1327: 1385: 1342: 1332: 1322: 1299: 775: 276:. This facilitates executing a program written in such a language on any computing system with compatible support for the Interpreted or 653:
Code written in a language may be translated into terms of a lower-level language for which native code compilers are already common.
810: 597:
Interpreters are commonly the simplest implementations of the behavior of a language, compared to the other two variants listed here.
1194: 1153: 1104: 568: 344: 99:. However, it was not implemented in his time, and his original contributions were largely isolated from other developments due to 1314: 666: 549: 1374: 1289: 1030: 879: 837: 790: 780: 506: 390: 326: 168: 53: 45: 1094: 521: 205:. Rather than dealing with registers, memory addresses, and call stacks, high-level languages deal with variables, arrays, 1304: 950: 673:
as examples. Specifically, the generated C and C++ code can be seen (as generated from the Eiffel language when using the
670: 412:, and similar languages, were most often considered "high-level", as it supported concepts such as expression evaluation, 370: 358: 898: 856: 282: 152: 528: 293:
which they were written for without major revision. This is the engineering 'trade-off' for the 'Abstraction Penalty'.
757: 632: 394: 386: 286: 230: 186: 1363: 958: 433: 495: 315: 711: 682: 535: 455:, as it supports concepts such as constants and (limited) expressions, sometimes even variables, procedures, and 214: 206: 182: 658: 448: 409: 277: 1080:
Proceedings of the 2006 International Conference on Compilers, Architecture and Synthesis for Embedded Systems
1072: 733: 517: 225:, high-level languages have few, if any, language elements that translate directly into a machine's native 156: 681:
process is referred to as transcompiling or transcompiled, and the Eiffel compiler as a transcompiler or
63:, be easier to use, or may automate (or even hide entirely) significant areas of computing systems (e.g. 1002: 844:
The 'high' level programming languages are often called autocodes and the processor program, a compiler.
729: 607:, its syntax is transformed into an executable form before running. There are two types of compilation: 290: 273: 248: 447:
Assembly language may itself be regarded as a higher level (but often still one-to-one if used without
420:
was considered "low-level". Today, many programmers might refer to C as low-level, as it lacks a large
173: 976: 1282: 1253: 785: 707: 589: 261: 244: 41: 911: 697:
languages. Rather, implementations of language behavior use interpreting or compiling. For example,
1122: 892: 850: 210: 190: 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
1277: 1272: 1190: 1159: 1149: 1100: 1058:
Proceedings - 7th International Conference on Reliable Software Technologies - Ada-Europe'2002
934: 875: 833: 639:. The intermediate representation must then be interpreted or further compiled to execute it. 622: 604: 417: 272:
in particular settings. High-level languages are designed independent of a specific computing
257: 222: 104: 64: 542: 1182: 202: 136: 57: 33: 1015: 814: 640: 468: 437: 429: 1186: 922: 456: 441: 421: 268: 131:
defined in 1960 by committees of European and American computer scientists, introduced
1397: 916: 144: 140: 92: 1267: 674: 662: 614: 460: 452: 366: 148: 100: 17: 1071:
Manuel Carro; José F. Morales; Henk L. Muller; G. Puebla; M. Hermenegildo (2006).
1034: 1222: 1143: 1216: 751: 484: 305: 96: 747: 654: 382: 362: 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
581:
There are three general modes of execution for modern high-level languages:
464: 413: 218: 132: 1212: 260:, leading to a much faster, more efficient, or simply reliably functioning 942: 737: 732:
itself is designed to be targeted by a specific high-level language. The
698: 636: 357:
Examples of high-level programming languages in active use today include
128: 124: 116: 76: 71: 49: 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 938: 702: 509: in this section. Unsourced material may be challenged and removed. 329: in this section. Unsourced material may be challenged and removed. 217:, locks, and other abstract computer science concepts, with a focus on 112: 85: 874:. 24 Russell Square London WC1: Faber and Faber Limited. p. 186. 832:. 24 Russell Square London WC1: Faber and Faber Limited. p. 184. 954: 946: 226: 201:"High-level language" refers to the higher level of abstraction from 103:, aside from the language's influence on the "Superplan" language by 91:
The first high-level programming language designed for computers was
710:(JVM)) or compiling (typically with a just-in-time compiler such as 178: 120: 108: 81: 27:
Programming language that abstracts details of computing hardware
374: 1226: 478: 425: 378: 300: 463:, in turn, is inherently at a slightly higher level than the 111:. The first significantly widespread high-level language was 416:
recursive functions, and data types and structures, while
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 229:. Other features, such as string handling routines, 1313: 1260: 171:was the first to be described in formal notation – 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 1148:(2nd ed.). San Francisco: No Starch Press. 1127:: CS1 maint: bot: original URL status unknown ( 1093:Kernighan, Brian W.; Ritchie, Dennis M. (1988). 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 193:in a programming language for the first time. 1238: 661:are common targets for such translators. See 8: 650:Source-to-source translated or transcompiled 285:which maintains backward compatibility with 977:"Meta-Compilation of Language Abstractions" 1245: 1231: 1223: 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 870:London, Keith (1968). "4, Programming". 828:London, Keith (1968). "4, Programming". 1096:The C Programming Language: 2nd Edition 802: 432:. Also, in the introduction chapter of 177:(BNF). During roughly the same period, 1120: 1011: 1000: 890: 848: 989:from the original on 17 February 2015 776:Very high-level programming languages 689:Note that languages are not strictly 7: 507:adding citations to reliable sources 471:used internally in many processors. 327:adding citations to reliable sources 213:, subroutines and functions, loops, 1409:Programming language classification 603:When code written in a language is 588:When code written in a language is 1187:10.1016/b978-0-12-174150-1.50007-0 25: 1404:High-level programming languages 750: 483: 304: 155:. ALGOL also introduced several 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 791:Abstraction (computer science) 1: 1386:Programming paradigms navbox 1145:The art of assembly language 628:Intermediate representations 80:. Examples of autocodes are 1181:, Elsevier, pp. 1–14, 758:Computer programming portal 633:intermediate representation 189:introduced a fully general 1425: 434:The C Programming Language 185:(also called structs) and 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 18:High-level language 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: 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: 1176: 1175: 1171: 1156: 1141: 1140: 1136: 1119: 1112: 1110: 1107: 1092: 1091: 1087: 1075: 1070: 1069: 1065: 1055: 1054: 1050: 1040: 1038: 1028: 1027: 1023: 1009: 999: 992: 990: 986: 979: 974: 973: 969: 962: 932: 928: 914: 910: 906: 889: 882: 869: 868: 864: 847: 840: 827: 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: 1420: 1412: 1411: 1406: 1396: 1395: 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: 1252: 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: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1421: 1410: 1407: 1405: 1402: 1401: 1399: 1387: 1381: 1376: 1370: 1365: 1359: 1358: 1354: 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: 1206: 1198: 1196:9780121741501 1192: 1188: 1184: 1180: 1173: 1170: 1165: 1161: 1157: 1155:9781593273019 1151: 1147: 1146: 1138: 1135: 1130: 1124: 1108: 1106:9780131103627 1102: 1098: 1097: 1089: 1086: 1081: 1074: 1067: 1064: 1059: 1052: 1049: 1036: 1032: 1025: 1022: 1017: 1004: 985: 978: 971: 968: 965:-parameters). 960: 956: 952: 948: 944: 940: 936: 930: 927: 924: 918: 913: 908: 905: 900: 894: 887: 883: 877: 873: 866: 863: 858: 852: 845: 841: 835: 831: 824: 821: 816: 812: 806: 803: 796: 792: 789: 787: 784: 782: 779: 777: 774: 772: 769: 767: 764: 763: 759: 753: 748: 743: 741: 739: 735: 731: 727: 726: 717: 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: 474: 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: 296: 294: 292: 288: 284: 279: 275: 270: 265: 263: 259: 254: 250: 246: 237: 235: 232: 228: 224: 220: 216: 212: 208: 204: 196: 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:)

Index

High-level language
computer science
programming language
abstraction
computer
low-level programming languages
natural language
memory management
compiler
autocode
COBOL
Fortran
PlankalkĂĽl
Konrad Zuse
World War II
Heinz Rutishauser
ALGOL
Fortran
Autocode
ALGOL
ALGOL 58
ALGOL 60
recursion
nested functions
lexical scope
value
name-parameters
semantics
structured programming
syntax

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

↑