Чем выше уровень языка программирования тем

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

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

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

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

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

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

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

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

Отличия между типами языков

1. Скорость

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

Высокоуровневое, среднее и низкоуровневое программирование

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

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

Низкоуровневое программирование: разговор с машиной

Низкоуровневое программирование

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

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

Языки программирования низкого уровня напрямую взаимодействуют с оборудованием, без дополнительных компиляторов или интерпретаторов, что позволяет нам повысить производительность. Это был (например) тип программирования, используемый на перфокартах. Инструкции отправляются на оборудование прямо в двоичный (первое поколение) или используя более знакомый язык, например ассемблер (второе поколение), состоящее из сокращений, таких как ADD, DIV или SUB. Сегодня этот тип программирования используется только для поддержки систем прошлого, никому и в голову не приходит создавать новый проект на языках низкого уровня.

Среднеуровневое программирование: доступ к оборудованию с помощью «естественного» языка

Programación de medio nivel

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

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

Преимущества языков на этом уровне в том, что они проще и более естественен, чем машинные языки, что позволяет создавать сложные программы быстрее и проще. Кроме того, поскольку он находится не на очень высоком уровне, потеря производительности минимальна, и он имеет доступ к системным регистрам и его Ресурсы (через указатели памяти). Однако он не позволяет создавать динамические структуры или ориентироваться на объекты или события.

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

Языки высокого уровня: говорить с определенной естественностью

Программирование высокого уровня

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

Языки высокого уровня предназначены для бесперебойной работы на любой машине, независимо от используемого вами оборудования. Это возможно благодаря компиляторы и переводчики которые обычно изначально включены в операционные системы. Не имеет значения, написана ли программа на C ++, .NET, Java или Python, если код прошел через компилятор, и у нас есть необходимый интерпретатор (например, виртуальная машина Java), мы можем выполнить их на любом операционной системы, используйте любое оборудование, которое вы используете.

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

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

Есть много языков программирования высокого уровня. Мы можем найти очень специфические языки (например, Фортран or Кобол ) для выполнения конкретных задач или общих языков, таких как ПРОТИВ # , C ++ or Визуальный Бейсик которые стоят всего понемногу.

Источник

Читайте также:  Программы для программирование реле
Оцените статью