1 язык программирования высокого уровня 7 букв

В информатикевысокоуровневый язык программирования-это язык программирования с сильной абстракцией от деталей компьютера. В отличие от низкоуровневых языков программирования, он может использовать элементы естественного языка, быть более простым в использовании или может автоматизировать (или даже полностью скрыть) значительные области вычислительных систем (например, управление памятью), что делает процесс разработки программы более простым и понятным. Чем при использовании языка более низкого уровня. Объем предоставленной абстракции определяет. Насколько ]

В 1960-х годах языки программирования высокого уровня. Использующие компилятор, обычно назывались автокодами.[2] Примерами автокодов являются COBOL и Fortran.[3]

Первый высокоуровневый язык программирования. Предназначенный для компьютеров было Планкалкюль, созданный Конрадом Цузе.[4] однако. Он не был реализован в свое время. И его первоначально взносы были в значительной степени изолированы от других событий из-за Второй мировой войны, помимо языка. Влияние на Хайнц Rutishauser , а также в некоторой степени Алгол. Первым широко распространенным языком высокого уровня был Fortran, машинно-независимая разработка более ранних систем автокодирования IBM. Алгол, определенный в 1958 и 1960 годах комитетами европейских и американских ученых-компьютерщиков. Ввел рекурсию, а также вложенные функции в лексическую область. Он также был первым языком с четким различие между значением и именем-параметры и их семантика.[5] Алгол также представила несколько структурного программирования концепций. Таких как а-у , а если-то-иначе конструкции и ее синтаксис был впервые описан в формальной нотации – форма Бэкуса–НаураПримерно в тот же период Cobol ввел записи (также называемые структурами) и Lisp впервые введена полностью общая лямбда-абстракция в языке программирования.

машинного языка. Вместо того чтобы иметь дело с регистрами. Адресами памяти и стеками вызовов. Языки высокого уровня имеют дело с переменными. Массивами, объектами, сложными арифметическими или булевыми выражениями . Подпрограммами и функциями. Циклами, потоками, блокировками и другими абстрактными понятиями информатики . С акцентом на удобство использования. А не на оптимальную эффективность программы. В отличие от низкоуровневых языков ассемблера, языки высокого уровня имеют мало языковых элементов. Которые переводятся непосредственно в собственные опкоды машины Другие функции. Такие как процедуры обработки строк. Функции объектно-ориентированного языка и файловый ввод/вывод. Также могут присутствовать. Одна вещь, которую следует отметить о языках программирования высокого уровня. Заключается в том. Что эти языки позволяют программисту быть отделенным и отделенным от машины. То есть, в отличие от низкоуровневых языков. Таких как ассемблер или машинный язык. Высокоуровневое программирование может усиливать инструкции программиста и запускать множество движений данных в фоновом режиме без их ведома. Ответственность и полномочия по выполнению инструкций были переданы машине от программиста.

Штраф за абстракцию

Языки высокого уровня предназначены для предоставления функций. Которые стандартизируют общие задачи. Позволяют выполнять обширную отладку и поддерживают архитектурный агностицизм; в то время как языки низкого уровня часто производят более эффективный код путем оптимизации для конкретной архитектуры системы. Штраф за абстракцию это цена. Которую платят высокоуровневые методы программирования за неспособность оптимизировать производительность или использовать определенное оборудование. Потому что они не используют преимущества определенных низкоуровневых архитектурных ресурсов. Высокоуровневое программирование демонстрирует такие функции. Как более общие структуры данных и операции. Интерпретация во время выполнения и промежуточные файлы кода; которые часто приводят к выполнению гораздо большего количества операций. Чем необходимо. Более высокому потреблению памяти и большему размеру двоичной программы.[6][7][8] По этой причине код. Который должен выполняться особенно быстро и эффективно. Может потребовать использования языка более низкого уровня. Даже если язык более высокого уровня облегчит кодирование. Во многих случаях критические части программы. Написанные в основном на языке высокого уровня . Могут быть вручную закодированы на ассемблере, что приводит к гораздо более быстрой. Эффективной или просто надежно функционирующей оптимизированной программе.

Однако с ростом сложности современных микропроцессорных архитектур хорошо разработанные компиляторы для языков высокого уровня часто производят код. Сравнимый по эффективности с тем. Что большинство низкоуровневых программистов могут производить вручную. И более высокая абстракция может позволить использовать более мощные методы. Обеспечивающие лучшие общие результаты. Чем их низкоуровневые аналоги в конкретных условиях.[9] Высокоуровневые языки разрабатываются независимо от конкретной архитектуры вычислительной системы. Это облегчает выполнение программы. Написанной на таком языке. На любой вычислительной системе с совместимой поддержкой интерпретируемой или JIT-программы. Языки высокого уровня могут быть улучшены по мере того. Как их разработчики разрабатывают улучшения. В других случаях новые высокоуровневые языки развиваются из одного или нескольких других с целью объединения наиболее популярных конструкций с новыми или улучшенными функциями. Примером этого является Scala которая поддерживает обратную совместимость с Java это означает. Что программы и библиотеки. Написанные на Java. Будут по-прежнему использоваться. Даже если магазин программирования переключится на Scala; это облегчает переход и срок службы такого высокоуровневого кодирования неопределенен. В отличие от этого. Низкоуровневые программы редко выживают за пределами системной архитектуры. Для которой они были написаны. Без серьезной ревизии. Это инженерный

Относительное значение

Примерами языков программирования высокого уровня . Активно используемых сегодня . Являются Python, Visual Basic, Delphi, Perl, PHP, ECMAScript, Ruby, C#, Java и многие другие.

Термины язык Сии подобные ему языки чаще всего считались параметризованные рекурсивные функции. Типы и структуры данных. В то время как язык ассемблера считался Сегодня многие программисты могут называть язык Си низкоуровневым. Поскольку ему не хватает большого времени выполнения-система (без сборки мусора и т. Д.), В основном поддерживает только скалярные операции и обеспечивает прямую адресацию памяти. Поэтому он легко сочетается с языком ассемблера и машинным уровнем процессоров и микроконтроллеров.

Язык ассемблера сам по себе может рассматриваться как более высокий уровень (но часто все еще один к одному . Если используется без макросов) представления машинного кода, поскольку он поддерживает такие понятия. Как константы и (ограниченные) выражения. Иногда даже переменные. Процедуры и структуры данных. Машинный код, в свою очередь. По своей сути находится на несколько более высоком уровне. Чем микрокод или микрооперации, используемые внутри многих процессоров.]

Режимы выполнения

Существует три основных режима выполнения для современных языков высокого уровня:

Интерпретированный
Когда код . Написанный на языке, интерпретируется, его синтаксис считывается и затем выполняется непосредственно. Без стадии компиляции. Программа, называемая интерпретатором, читает каждый оператор программы. Следуя потоку программы. Затем решает. Что делать. И делает это. Гибрид интерпретатора и компилятора скомпилирует оператор в машинный код и выполнит его; затем машинный код отбрасывается. Чтобы быть интерпретированным заново. Если строка будет выполнена снова. Интерпретаторы обычно являются простейшими реализациями поведения языка по сравнению с двумя другими вариантами. Перечисленными здесь.
Составленный
Когда код . Написанный на языке, компилируется, его синтаксис преобразуется в исполняемую форму перед запуском. Существует два типа компиляции:

Генерация машинного кода
Некоторые компиляторы компилируют исходный код непосредственно в машинный код. Это оригинальный способ компиляции, и языки. Которые непосредственно и полностью преобразуются в машинно-машинный код таким образом. Можно назвать действительно компилируемыми языками. См. Раздел Язык ассемблера.
Промежуточные представления
Когда код . Написанный на языке. Компилируется в промежуточное представление, это представление может быть оптимизировано или сохранено для последующего выполнения без необходимости повторного чтения исходного файла. Когда промежуточное представление сохраняется. Оно может быть в такой форме. Как байт-код . Затем промежуточное представление должно быть интерпретировано или дополнительно скомпилировано для его выполнения. Виртуальные машины, которые выполняют байт-код напрямую или преобразуют его в машинный код. Размыли некогда четкое различие между промежуточными представлениями и действительно скомпилированными языками.
Перевод или транскомпиляция из источника в источник
Код, написанный на каком-либо языке. Может быть переведен на язык более низкого уровня. Для которого уже распространены компиляторы собственного кода. JavaScript и язык C являются общими целями для таких переводчиков. См. CoffeeScript, Chicken Scheme и Eiffel в качестве примеров. В частности. Сгенерированный код C и C++ можно увидеть (как сгенерированный из языка Eiffel при использовании IDE EiffelStudio) в каталоге EIFGENs любого скомпилированного проекта Eiffel. В Eiffel процесс перевода называется транскомпилированием или транскомпилированием. А компилятор Eiffel-транскомпилятором или транскомпилированием. компилятор от источника к источнику.

Обратите внимание. Что языки не являются строго интерпретируемыми языками или компилируемыми языками. Скорее, реализации языкового поведения используют интерпретацию или компиляцию. Например, ALGOL 60 и Fortran были интерпретированы (хотя они были более типично скомпилированы). Точно так же Java показывает трудность применения этих меток к языкам. А не к реализациям; Java компилируется в байт-код. Который затем выполняется либо интерпретацией (в виртуальной машине Java (JVM)). Либо компиляцией (обычно с помощью компилятора just-in-time. Такого как HotSpot, опять же в JVM). Более того, компиляция. Транскомпиляция и интерпретация не ограничиваются строго только описанием артефакта компилятора (двоичный исполняемый файл или сборка IL).

Высокоуровневый язык Архитектура ЭВМ

Кроме того, язык высокого уровня может быть непосредственно реализован компьютером-компьютер непосредственно выполняет HLL-код. Это известно как компьютерная архитектура языка высокого уровня-сама компьютерная архитектура предназначена для того. Чтобы быть нацеленной на определенный язык высокого уровня. Большие системы Берроуза были целевыми машинами для ALGOL 60, например.]

  1. ^
  2. ^ Лондон, Кит (1968). Введение в компьютеры. 24 Russell Square London WC1: Faber and Faber Limited. p. 184. ISBN 0571085938. Языки программирования CS1 maint: location (link)
  3. ^ Лондон, Кит (1968). Введение в компьютеры. 24 Russell Square London WC1: Faber and Faber Limited. p. 186. ISBN 0571085938. Два языка программирования высокого уровня. Которые могут быть использованы здесь в качестве примеров для иллюстрации структуры и назначения автокодов. — это COBOL (Common Business Oriented Language) и FORTRAN (Formular Translation).CS1 maint: местоположение (ссылка)
  4. ^ Giloi, Wolfgang, K. [de] (1997). IEEE Annals of the History of Computing, vol. 19, no. 2, pp. 17-24, апрель–июнь 1997 г. (аннотация)
  5. Хотя в нем отсутствовало понятие эталонных параметров, что в некоторых ситуациях могло быть проблемой. Поэтому несколько преемников, включая AlgolW, Algol68, Simula, Pascal, Modula и Ada, включали ссылочные параметры (родственное семейство языков C вместо этого допускало адреса в качестве параметров значений).
  6. ^ Сурана П (2006). (PDF). Архивировано из оригинала (PDF) на 2015-02-17. Извлечено 2008-03-17.
  7. ^ Кукетаев. . Архивирован с оригинала на 2009-01-11. Проверено 2008-03-17.
  8. ^ Chatzigeorgiou; Stephanides (2002). В Blieberger; Strohmeier (eds.). Proceedings — 7th International Conference on Reliable Software Technologies — Ada-Europe’2002. Springer. p. 367.
  9. ^ Мануэль Карро; Хосе Ф. Моралес; Хенк Л. Мюллер; Г. Пуэбла; М. Герменегильдо (2006). (PDF). Материалы Международной конференции 2006 года по компиляторам. Архитектуре и синтезу встраиваемых систем.
  10. ^ Хайд, Рэндалл. (2010). Искусство ассемблера (2-е изд.). Сан-Франциско: Никакого Крахмального пресса. ISBN 9781593273019. OCLC 635507601.
  11. ^ Chu, Yaohan (1975), «Concepts of High-Level Language Computer Architecture», High-Level Language Computer Architecture, Elsevier, pp. 1-14, doi:10.1016/b978-0-12-174150-1.50007-0, ISBN 9780121741501

Внешние ссылки