Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Высшие и низшие языки программирования

KVERNER

Matlab Simulink Python Java HELP Работы программиста профессионала

Что такое языки низкого, среднего и высокого уровня?

Языки программирования можно разделить на три широкие категории. Это языки высокого уровня, среднего уровня и низкого уровня. Эти три типа языков различаются в зависимости от различных характеристик.

Высокий уровень относится к языкам программирования, написанным таким образом, который может быть понят человеком. Они независимы, и программистам не нужно иметь никаких предварительных знаний об оборудовании, в котором будет использоваться программа. Примеры языков программирования высокого уровня включают C ++ и Python.

Языки среднего уровня служат мостом между аппаратным и программным уровнем компьютера. Они работают на уровне абстракции компьютера. С другой стороны, языки низкого уровня написаны для удовлетворения потребностей конкретной архитектуры компьютера и требований к оборудованию.

В этой статье мы рассмотрим основные различия между языками программирования высокого уровня, среднего уровня и низкого уровня.

1. Скорость

С точки зрения скорости программы, написанные на языках низкого уровня, быстрее, чем программы, написанные на средних и высокоуровневых языках. Это связано с тем, что эти программы не нужно интерпретировать или компилировать. Они взаимодействуют непосредственно с регистрами и памятью.

С другой стороны, программы, написанные на языке высокого уровня, относительно медленнее. Основная причина этого — они написаны на человеческом языке. Это означает, что компьютер вынужден переводить и интерпретировать их на человеческом языке, прежде чем он их выполнит. Все эти процессы требуют много времени.

Скорость среднего уровня языка находится между языками высокого и низкого уровня. Это не слишком высоко или слишком низко.

2. Требование к памяти

Это еще один параметр, который мы можем использовать для дифференциации этих трех типов языков. Низкоуровневые языки очень эффективны с точки зрения памяти. Они потребляют меньше памяти. Это очень отличается от языков высокого уровня, которые, как известно, являются интенсивными для памяти. Они потребляют большую память, особенно когда мы считаем, что тот факт, что эти языки все еще работают в определенной среде выполнения. Эффективность памяти языков программирования среднего уровня не так высока по сравнению с языками высокого уровня.

3. Простота использования

Низкоуровневые языки дружелюбны к машинам, но недружественны для программистов-людей. Как программист на людях, довольно сложно справляться с бинарниками и мнемониками. Тот факт, что каждая инструкция предназначена для конкретной компьютерной архитектуры, делает язык более техническим. Короче говоря, низкоуровневые языки трудно освоить.

С другой стороны, языки высокого уровня благоприятны для людей. Они состоят из английских заявлений, которые можно легко узнать и запомнить. Это объясняет, почему они являются наиболее популярным типом языка программирования.

4. Портативность

В этом контексте термин переносимость относится к способности языка использоваться на разных компьютерах. Низкоуровневые языки программирования менее переносимы. Это связано с тем, что их инструкции зависят от машины. Это просто означает, что каждая команда написана для конкретной машины. Коды для конкретной машины не могут работать в другой компьютерной архитектуре.

Языки высокого уровня не зависят от машины. Один код можно использовать на другой машине и даже на другой архитектуре без каких-либо трудностей. Это означает, что высокоуровневые языки программирования очень портативны. Вы можете перенести программу, написанную на высоком уровне, из одной среды в другую, и она все равно будет работать.

5. Абстракция

В этом контексте абстракция относится к взаимосвязи между языком и компьютерным оборудованием. Это минимальная или даже нулевая абстракция между низкоуровневыми языками с компьютерным оборудованием. Эти языки легко взаимодействуют с памятью компьютера и регистрируются.

Разрыв между языками среднего уровня и аппаратными средствами весьма значителен. Он больше, чем язык низкого уровня, но меньше, чем язык с языками высокого уровня.

Как и ожидалось, языки высокого уровня имеют максимальный уровень абстракции. Это связано с тем, что они работают с самого верхнего уровня компьютера, где минимальное взаимодействие с оборудованием.

Как вы можете видеть, существуют явные различия между языками программирования высокого уровня, среднего уровня и низкого уровня. Мы также можем указать, что каждый тип языка программирования предназначен для удовлетворения его конкретных целей. По этой причине мы не можем рекомендовать один тип программирования над другим.

Язык программирования. Языки низкого и высокого уровня

Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель под её управлением.

Со времени создания первых программируемых машин человечество придумало более восьми тысяч языков программирования (включая нестандартные, визуальные и эзотерические языки). Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты могут владеть десятком и более разных языков программирования.

Язык программирования предназначен для написания компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами, и т. п. Язык программирования отличается от естественных языков тем, что предназначен для
взаимодействия человека с ЭВМ, в то время как естественные языки используются для общения людей между собой. Большинство языков программирования использует специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.

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

  • стандарта языка — набора спецификаций, определяющих его синтаксис и семантику; стандарт языка может исторически развиваться (см. подробнее стандартизация);
  • воплощений (реализаций) стандарта — собственно программных средств, обеспечивающих работу согласно тому или иному варианту стандарта языка; такие программные средства различаются по производителю, марке и варианту (версии), времени выпуска, полноте воплощения стандарта, дополнительным возможностям; могут иметь определённые ошибки или особенности воплощения, влияющие на практику использования языка или даже на его стандарт.

Способы реализации языков

Языки программирования могут быть реализованы как: компилируемые, интерпретируемые и встраиваемые.
Программа на компилируемом языке при помощи компилятора (особой программы) преобразуется (компилируется) в машинный код (набор инструкций) для данного типа процессора и далее собирается в исполнимый модуль, который может быть запущен на исполнение как отдельная программа. Другими словами, компилятор переводит исходный текст программы с языка программирования высокого уровня в двоичные коды инструкций процессора.

Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) исходный текст без предварительного перевода. При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора. Процессор компьютера, в этой связи, можно назвать интерпретатором для машинного кода.

Читать еще:  Методология объектно ориентированного программирования

Разделение на компилируемые и интерпретируемые языки является условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое
высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов).
Для любого интерпретируемого языка можно создать компилятор — например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения.

Как правило, скомпилированные программы выполняются быстрее и не требуют для выполнения дополнительных программ, так как уже переведены на машинный язык. Вместе с тем, при каждом изменении текста программы требуется её перекомпиляция, что замедляет процесс разработки. Кроме того, скомпилированная программа может выполняться только на том же типе компьютеров и, как правило, под той же операционной системой, на которую был рассчитан компилятор. Чтобы создать исполняемый файл для машины другого типа, требуется новая компиляция.
Интерпретируемые языки обладают некоторыми специфическими дополнительными возможностями (см. выше), кроме того, программы на них можно запускать сразу же после изменения, что облегчает разработку.

Программа на интерпретируемом языке может быть зачастую запущена на разных типах машин и операционных систем без дополнительных усилий.
Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без программы-интерпретатора.
Некоторые языки, например, Java и C#, находятся между компилируемыми и интерпретируемыми. А именно, программа компилируется не в машинный язык, а в машинно-независимый код низкого уровня, байт-код. Далее байт-код выполняется виртуальной машиной. Для выполнения байт-кода обычно используется интерпретация, хотя отдельные его части для ускорения работы программы могут быть транслированы в машинный код непосредственно во время выполнения программы по технологии компиляции «на лету» (Just-in-time compilation, JIT). Для Java байт-код исполняется виртуальной машиной Java (Java Virtual Machine, JVM), для C# — Common Language Runtime.

Подобный подход в некотором смысле позволяет использовать плюсы как интерпретаторов, так и компиляторов. Следует упомянуть, что есть языки, имеющие и интерпретатор, и компилятор (Форт).

Языки программирования низкого уровня

Первые компьютеры приходилось программировать двоичными машинными кодами. Однако программировать таким образом — довольно трудоемкая и тяжелая задача. Для упрощения этой задачи начали появляться языки программирования низкого уровня, которые позволяли задавать машинные команды в понятном для человека виде. Для преобразования их в двоичный код были созданы специальные программы — трансляторы.
Трансляторы делятся на:

  • компиляторы — превращают текст программы в машинный код, который можно сохранить и после этого использовать уже без компилятора (примером является исполняемые файлы с расширением *.exe).
  • интерпретаторы — превращают часть программы в машинный код, выполняют его и после этого переходят к следующей части. При этом каждый раз при выполнении программы используется интерпретатор.

Примером языка низкого уровня является ассемблер. Языки низкого уровня ориентированы на конкретный тип процессора и учитывают его особенности, поэтому для переноса программы на ассемблере на другую аппаратную платформу её нужно почти полностью переписать. Определенные различия есть и в синтаксисе программ под разные компиляторы. Правда, центральные процессоры для компьютеров фирм AMD и Intel практически совместимы и отличаются лишь некоторыми специфическими командами. А вот специализированные процессоры для других устройств, например, видеокарт и телефонов содержат существенные различия.
Языки низкого уровня, как правило, используют для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирование специализированных микропроцессоров, когда важнейшими требованиями являются компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам. Ассемблер — язык низкого уровня, широко применяется до сих пор.

Языки программирования высокого уровня

Особенности конкретных компьютерных архитектур в них не учитываются, поэтому созданные приложения легко переносятся с компьютера на компьютер. В большинстве случаев достаточно просто перекомпилировать программу под определенную компьютерную архитектурную и операционную систему. Разрабатывать программы на таких языках значительно проще и ошибок допускается меньше. Значительно сокращается время разработки программы, что особенно важно при работе над большими
программными проектами.
Сейчас в среде разработчиков считается, что языки программирования, которые имеют прямой доступ к памяти и регистров или имеют ассемблерные вставки, нужно считать языками программирования с низким уровнем абстракции. Поэтому большинство языков, считавшихся языками высокого уровня до 2000 года сейчас уже таковыми не считаются.

  • Адресный язык программирования
  • Фортран
  • Кобол
  • Алгол
  • Pascal
  • Pascal ABC
  • Python
  • Java
  • C
  • Basic
  • C++
  • Objective-C
  • Smalltalk
  • C#
  • Delphi

Недостатком некоторых языков высокого уровня является большой размер программ в сравнении с программами на языках низкого уровня. С другой стороны, для алгоритмически и структурно сложных программ при использовании суперкомпиляции преимущество может быть на стороне языков высокого уровня. Сам текст программ на языке высокого уровня меньше, однако, если взять в байтах, то код, изначально написанный на ассемблере, будет более компактным. Поэтому в основном языки высокого
уровня используются для разработки программного обеспечения компьютеров и устройств, которые имеют большой объём памяти. А разные подвиды ассемблера применяются для программирования других устройств, где критичным является размер программы.

Используемые символы

Современные языки программирования рассчитаны на использование ASCII, то есть доступность всех графических символов ASCII является необходимым и достаточным условием для записи любых конструкций языка. Управляющие символы ASCII используются ограниченно: допускаются только возврат каретки CR, перевод строки LF и
горизонтальная табуляция HT (иногда также вертикальная табуляция VT и переход к следующей странице FF).

Ранние языки, возникшие в эпоху 6-битных символов, использовали более ограниченный набор. Например, алфавит Фортрана включает 49 символов
(включая пробел): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + — * / () . , $ ‘ :
Заметным исключением является язык APL, в котором используется очень много специальных символов.
Использование символов за пределами ASCII (например, символов KOI8-R или символов Юникода) зависит от реализации: иногда они разрешаются только в комментариях и символьных/строковых константах, а иногда и в идентификаторах. В СССР существовали языки, где все ключевые слова писались русскими буквами, но большую популярность подобные языки не завоевали.
Расширение набора используемых символов сдерживается тем, что многие проекты по разработке программного обеспечения являются международными. Очень сложно было бы работать с кодом, где имена одних переменных записаны русскими буквами, других — арабскими, а третьих — китайскими иероглифами. Вместе с тем, для работы с текстовыми данными языки программирования нового поколения (Delphi 2006, C#, Java) поддерживают Unicode.

KVERNER

Matlab Simulink Python Java HELP Работы программиста профессионала

Что такое языки низкого, среднего и высокого уровня?

Языки программирования можно разделить на три широкие категории. Это языки высокого уровня, среднего уровня и низкого уровня. Эти три типа языков различаются в зависимости от различных характеристик.

Читать еще:  Html язык программирования

Высокий уровень относится к языкам программирования, написанным таким образом, который может быть понят человеком. Они независимы, и программистам не нужно иметь никаких предварительных знаний об оборудовании, в котором будет использоваться программа. Примеры языков программирования высокого уровня включают C ++ и Python.

Языки среднего уровня служат мостом между аппаратным и программным уровнем компьютера. Они работают на уровне абстракции компьютера. С другой стороны, языки низкого уровня написаны для удовлетворения потребностей конкретной архитектуры компьютера и требований к оборудованию.

В этой статье мы рассмотрим основные различия между языками программирования высокого уровня, среднего уровня и низкого уровня.

1. Скорость

С точки зрения скорости программы, написанные на языках низкого уровня, быстрее, чем программы, написанные на средних и высокоуровневых языках. Это связано с тем, что эти программы не нужно интерпретировать или компилировать. Они взаимодействуют непосредственно с регистрами и памятью.

С другой стороны, программы, написанные на языке высокого уровня, относительно медленнее. Основная причина этого — они написаны на человеческом языке. Это означает, что компьютер вынужден переводить и интерпретировать их на человеческом языке, прежде чем он их выполнит. Все эти процессы требуют много времени.

Скорость среднего уровня языка находится между языками высокого и низкого уровня. Это не слишком высоко или слишком низко.

2. Требование к памяти

Это еще один параметр, который мы можем использовать для дифференциации этих трех типов языков. Низкоуровневые языки очень эффективны с точки зрения памяти. Они потребляют меньше памяти. Это очень отличается от языков высокого уровня, которые, как известно, являются интенсивными для памяти. Они потребляют большую память, особенно когда мы считаем, что тот факт, что эти языки все еще работают в определенной среде выполнения. Эффективность памяти языков программирования среднего уровня не так высока по сравнению с языками высокого уровня.

3. Простота использования

Низкоуровневые языки дружелюбны к машинам, но недружественны для программистов-людей. Как программист на людях, довольно сложно справляться с бинарниками и мнемониками. Тот факт, что каждая инструкция предназначена для конкретной компьютерной архитектуры, делает язык более техническим. Короче говоря, низкоуровневые языки трудно освоить.

С другой стороны, языки высокого уровня благоприятны для людей. Они состоят из английских заявлений, которые можно легко узнать и запомнить. Это объясняет, почему они являются наиболее популярным типом языка программирования.

4. Портативность

В этом контексте термин переносимость относится к способности языка использоваться на разных компьютерах. Низкоуровневые языки программирования менее переносимы. Это связано с тем, что их инструкции зависят от машины. Это просто означает, что каждая команда написана для конкретной машины. Коды для конкретной машины не могут работать в другой компьютерной архитектуре.

Языки высокого уровня не зависят от машины. Один код можно использовать на другой машине и даже на другой архитектуре без каких-либо трудностей. Это означает, что высокоуровневые языки программирования очень портативны. Вы можете перенести программу, написанную на высоком уровне, из одной среды в другую, и она все равно будет работать.

5. Абстракция

В этом контексте абстракция относится к взаимосвязи между языком и компьютерным оборудованием. Это минимальная или даже нулевая абстракция между низкоуровневыми языками с компьютерным оборудованием. Эти языки легко взаимодействуют с памятью компьютера и регистрируются.

Разрыв между языками среднего уровня и аппаратными средствами весьма значителен. Он больше, чем язык низкого уровня, но меньше, чем язык с языками высокого уровня.

Как и ожидалось, языки высокого уровня имеют максимальный уровень абстракции. Это связано с тем, что они работают с самого верхнего уровня компьютера, где минимальное взаимодействие с оборудованием.

Как вы можете видеть, существуют явные различия между языками программирования высокого уровня, среднего уровня и низкого уровня. Мы также можем указать, что каждый тип языка программирования предназначен для удовлетворения его конкретных целей. По этой причине мы не можем рекомендовать один тип программирования над другим.

Алгоритмические языки низкого и высокого уровня

Классификация языков программирования.

Существуют различные классификации языков программирования.

По наиболее распространенной классификации все языки программирования, в соответствии с тем, в каких терминах необходимо описать задачу, делят на языки низкого и высокого уровня.

Если язык близок к естественному языку программирования, то он называется языком высокого уровня, если ближе к машинным командам, – языком низкого уровня.

В группу языков низкого уровня входят машинные языки и языки символического кодирования: Автокод, Ассемблер. Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т. е. являются машинно–зависимыми.

Машинно–ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).

К языкам программирования высокого уровня относят Фортран (переводчик формул – был разработан в середине 50–х годов программистами фирмы IBM и в основном используется для программ, выполняющих естественно – научные и математические расчеты), Алгол, Кобол (коммерческий язык – используется, в первую очередь, для программирования экономических задач), Паскаль, Бейсик (был разработан профессорами Дармутского колледжа Джоном Кемени и Томасом Курцом.), Си (Деннис Ритч – 1972 году), Пролог (в основе языка лежит аппарат математической логики) и т.д.

Эти языки машинно–независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках.

Программу, написанную на языке программирования высокого уровня, ЭВМ не понимает, поскольку ей доступен только машинный язык. Поэтому для перевода программы с языка программирования на язык машинных кодов используют специальные программы – трансляторы.

Существует три вида транслятора: интерпретаторы (это транслятор, который производит пооператорную обработку и выполнение исходного кода программы), компиляторы (преобразует всю программу в модуль на машинном языке, после чего программа записывается в память компьютера и лишь потом исполняется) иассемблеры (переводят программу, записанную на языке ассемблера, в программу на машинном языке).

Языки программирования также можно разделять на поколения:

языки первого поколения: машинно–ориентированные с ручным управлением памяти на компьютерах первого поколения.

Читать еще:  Объектно ориентированное программирование delphi

языки второго поколения: с мнемоническим представлением команд, так называемые автокоды.

языки третьего поколения: общего назначения, используемые для создания прикладных программ любого типа. Например, Бейсик, Кобол, Си и Паскаль.

языки четвертого поколения: усовершенствованные, разработанные для создания специальных прикладных программ, для управления базами данных.

языки программирования пятого поколения: языки декларативные, объектно–ориентированные и визуальные. Например, Пролог, ЛИСП (используется для построения программ с использованием методов искусственного интеллекта), Си++, Visual Basic, Delphi.

Языки программирования также можно классифицировать на процедурные и непроцедурные.

В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий.

Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.

Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века, К непроцедурному программированию относятся функциональные и логические языки.

В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь делятся на еще более простые задачи и т.д. Один из основных элементов функциональных языков – рекурсия. Оператора присваивания и циклов в классических функциональных языках нет.

В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования считается Пролог. Программа на Прологе содержит, набор предикатов–утверждений, которые образуют проблемно–ориентированную базу данных и правила, имеющие вид условий.

Можно выделить еще один класс языков программирования – объектно–ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно–ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме.

Первый объектно-ориентированный язык программирования Simula был создан в 1960-х годах Нигаардом и Далом.

Ява – язык для программирования Internet, позволяющий создавать безопасные, переносимые, надежные, объектно–ориентированные интерактивные программы. Язык Ява жестко связан с Internet, потому, что первой серьезной программой, написанной на этом языке, был браузер Всемирной паутины.

В последнее время, говоря о программировании в Internet, часто имеют в виду создание публикаций с использованием языка разметки гипертекстовых документов HTML. Применение специальных средств (HTML–редакторов) позволяет не только создавать отдельные динамически изменяющиеся интерактивные HTML–документы, используя при этом данные мультимедиа, но и редактировать целые сайты.

Чем отличаются низко- средне- и высокоуровневые языки программирования

Перевод статьи Клеофаса Мулонго «What Are Low, Middle, And High Level Programming Languages?».

Языки программирования можно разбить на три большие категории. Это высокоуровневые, среднеуровневые и низкоуровневые языки. Эти три вида языков отличаются друг от друга по многим характеристикам.

К высокоуровневым относят языки программирования, которые созданы с расчетом на то, что их должны понимать люди. Они независимы: программистам не нужно знать, на каком оборудовании будет запускаться программа. Примеры таких языков – C++ и Python.

Среднеуровневые языки служат как бы связующим звеном между аппаратной и программной частью компьютера. Они действуют на уровне абстракции.

Низкоуровневые языки, в свою очередь, созданы для удовлетворения нужд конкретной компьютерной архитектуры и учитывают требования «железа».

В этой статье мы рассмотрим некоторые ключевые отличия между вышеуказанными видами языков программирования.

1. Скорость

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

Программы, написанные на высокоуровневых языках, относительно медленные. Главая причина этого в том, что они пишутся на «человеческом» языке. Компьютеру приходится переводить и интерпретировать их, прежде чем выполнить. Все эти процессы занимают время.

Скорость среднеуровневых языков занимает промежуточное положение. Ее не назовешь ни слишком высокой, ни слишком низкой.

2. Требования к памяти

Это еще один параметр, с помощью которого можно разграничить три вида языков программирования. Низкоуровневые языки очень эффективны в этом плане, они потребляют мало памяти. Это их очень отличает от высокоуровневых языков, которые являются очень ёмкими в этом плане. А вот программы на среднеуровневых языках уже не требуют столько памяти.

3. Легкость использования

Низкоуровневые языки дружественны к машинам, но недружественны к программистам. Человеку довольно сложно иметь дело с бинарным кодом и мнемоникой. То, что каждая инструкция создается для конкретной архитектуры компьютера, делает низкоуровневые языки более техническими. Короче говоря, учить их сложно.

Высокоуровневые языки, напротив, дружественны к людям. Они состоят из фраз на английском языке, которые легко понять и запомнить. Это поясняет, почему именно языки высокого уровня являются наиболее популярными.

4. Портируемость

В данном случае портируемость означает возможность использовать язык на разных компьютерах. Низкоуровневые языки являются менее портируемыми, поскольку их инструкции «машинозависимы». То есть, каждая инструкция написана для конкретной машины. Код, написанный для конкретной машины, не запустится на на компьютере с другой архитектурой.

Высокоуровневые языки не зависят от аппаратной части. Один и тот же код может без проблем использоваться на разных машинах (и даже на машинах с разной архитектурой). Это означает, что высокоуровневые языки являются хорошо портируемыми. Вы можете перенести программу, написанную на таком языке, из одной среды в другую – и она все равно будет работать.

5. Абстракция

В этом контексте абстракция это отношения между языком и аппаратной частью компьютера. В случае с низкоуровневыми языками абстракция минимальная или вообще нулевая. Эти языки легко взаимодействуют с памятью компьютера и регистрами.

Расхождение между среднеуровневыми языками и аппаратной частью довольно существенное. Оно больше, чем у низкоуровневых языков, но меньше, чем у высокоуровневых.

Логично предположить, что высокоуровневые языки имеют максимальный уровень абстракции. Это потому, что они работают на самом верхнем уровне компьютера, где взаимодействие с аппаратной частью минимальное.

Как видите, низко-, средне- и высокоуровневые языки заметно отличаются. Каждый вид языков служит для определенных целей, а потому, конечно же, ни один не является лучше другого.

Ссылка на основную публикацию
Adblock
detector