Език за програмиране от високо ниво

В компютърните науки езикът за програмиране на високо ниво е език за програмиране със силна абстракция от детайлите на компютъра. За разлика от езиците за програмиране на ниско ниво, той може да използва елементи на естествения език, да бъде по-лесен за използване или може да автоматизира (или дори да скрие изцяло) значителни области на изчислителните системи (напр. управлението на паметта ), което прави процеса на разработване на програма по-лесен и по-разбираем, отколкото при използване на език от ниско ниво. Размерът на предоставената абстракция определя колко „високо ниво“ е езикът за програмиране. [1]

През 60-те години на XX век език за програмиране на високо ниво, използващ компилатор, обикновено се нарича автокод. [2] Примери за автокодове са COBOL и Fortran. [3]

Първият език за програмиране от високо ниво, предназначен за компютри, е Планкалкюл, създаден от Конрад Цузе. [4] Въпреки това, той не е бил приложен по негово време и първоначалният му принос е до голяма степен изолиран от другите подобни разработки поради Втората световна война. Все пак той оказва влияние върху езика „Суперплан“ на Хайнц Рутисхаузер и също до известна степен върху ALGOL. Първият значително разпространен език на високо ниво е Fortran, машинно-независима разработка на по-ранните системи автокод на IBM. Семейството ALGOL, с ALGOL 58, дефиниран през 1958 г. и ALGOL 60, дефиниран през 1960 г. от комитети на европейски и американски компютърни учени, въвежда рекурсията, както и вложените функции в лексикалния обхват. ALGOL 60 е и първият език с ясно разграничение между параметрите за присвояване на стойност и именните променливи и съответната им семантика. ALGOL също така въвежда няколко концепции за структурно програмиране, като конструкциите while-do и if-then-else и неговият синтаксис е първият, описан във формална нотация – форма на Backus-Naur (BNF). През приблизително същия период COBOL въвежда записи (records) (тип данни, наричани също структури), а Lisp въвежда за първи път напълно обща ламбда абстракция в език за програмиране.

Примерите за езици за програмиране от високо ниво, които се използват активно днес, включват Python, JavaScript, Visual Basic, Delphi, Perl, PHP, ECMAScript, Ruby, C#, Java и много други.

Термините високо ниво и ниско ниво по своята същност са относителни. Преди няколко десетилетия езикът C и подобните езици най-често се смятаха за „високо ниво“, тъй като поддържаха концепции като оценка на изрази, параметризирани рекурсивни функции и типове данни и структури, докато асемблерният език се считаше за „ниско ниво“ ". Днес много програмисти могат да нарекат C език от ниско ниво, тъй като му липсва голяма run-time система за изпълнение, основно поддържа само скаларни операции и осигурява директно адресиране на паметта. Следователно той лесно се смесва с асемблерния език и машинното ниво на процесорите и микроконтролерите. Също така, в уводната глава на книгата The C Programming Language (второ издание) от K&R, C се счита за език с относително „ниско ниво“. [5]

Асемблерният език сам по себе си може да се разглежда като по-високо ниво (но често все още едно към едно, ако се използва без макроси) представяне на машинен код, тъй като поддържа концепции като константи и (ограничени) изрази, понякога дори променливи, процедури и структури от данни. Машинният код, от своя страна, е на малко по-високо ниво от микрокода или микрооперациите, използвани вътрешно в много процесори. [6]

Източници

Външни препратки

  Тази страница частично или изцяло представлява превод на страницата High-level programming language в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​