2.1.1. Языки низкого уровня
В группу языков программирования низкого уровня входят машинные языки и языки символического кодирования: (Автокод, Ассемблер).
Машинные языки – языки программирования, воспринимаемые аппаратной частью компьютера. Машинный язык является рабочим для компьютера, представлен в двоичной системе счисления. Команды, поступающие в процессор, являются электрическими сигналами, которые представляют собой числа, состоящие из нулей и единиц. Процессор работает с программой, представляющей собой последовательность чисел, которые называют машинным кодом. Написать программу в машинном коде трудоёмко и сложно.
К языкам программирования низкого уровня относятся машинно-ориентированные языки, которые отражают структуру конкретного типа компьютера (ассемблеры). Операторы языков ассемблеров и макроассемблеров – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена.
Язык макроассемблера является расширением языка ассемблера за счёт включения макросредств, позволяющих создавать макрокоманды.
На ассемблере или макроассемблере с целью повышения быстродействия или сокращения требуемых объектов памяти составляются прикладные процедуры, разрабатываются небольшие программы, входящие в состав системного программного обеспечения (драйверы, утилиты).
Все языки низкого уровня ориентированы на определенный тип компьютера, т.е. являются машинно-зависимыми.
2.2. Классификация языков программирования высокого уровня
Языки программирования высокого уровня являются искусственными языками, на которых компьютеры не работают и которые позволяют человеку передавать компьютеру команды программы в удобной форме. Языки программирования высокого уровня значительно ближе и понятнее человеку, чем компьютеру. Разрабатывать программы на языках высокого уровня намного проще. Однако необходим переводчик этих команд на машинный язык. Для этого существуют программы, которые переводят команды, записанные на языке высокого уровня на язык понятный для процессора, машинный язык.
Такой перевод на язык машинных кодов называется трансляцией, а выполняется он специальными программами – трансляторами.
Транслятор – это программа, которая принимает исходную программу и порождает на своем выходе программу, записываемую на объектном языке программирования (объектную программу). В частном случае объектным языком может служить машинный язык, и в этом случае полученную на выходе транслятора программу можно сразу же выполнить на ЭВМ. В общем случае объектный язык необязательно должен быть машинным или близким к нему (автокодом). В качестве объектного языка может служить и некоторый промежуточный язык.
Для промежуточного языка может быть использован другой транслятор или интерпретатор с промежуточного языка на машинный язык. Транслятор, использующий в качестве входного языка, близкий к машинному языку называют ассемблером.
Существует два основных вида трансляторов: интерпретаторы и компиляторы.
Компилятор (англ. Compiler – составитель) читает всю исходную программу (исходный модуль) целиком, делает её перевод на машинный язык, преобразуя всю программу в модуль на машинном языке (объектный модуль). Только после присоединения стандартных функций и процедур создаёт загрузочный модуль, который записывается в памяти ПК и выполняется. После компиляции исходная программа и компилятор для выполнения программы на компьютере не нужны, если в программе нет ошибок и она не будет изменяться.
Интерпретатор (англ. Interpreter – переводчик) это программа, которая переводит каждый оператор программы, записанной на алгоритмическом языке, на машинный язык и выполняет программу построчно, что позволяет сразу редактировать и исправлять ошибки.
Откомпилированные программы работают быстрее, интерпретируемые проще исправлять.
Разработка программ на языке высокого уровня включает в себя следующие действия:
- Ввод и редактирование текста на языке программирования
- Трансляция
- Отладка программы.
Низкоуровневые языки программирования: определение и список примеров
Самый низкоуровневый язык программирования — это машинный код, в котором есть только «единицы и нули». Чуть «выше» машинного кода, но в статусе низкоуровневого языка , располагается язык ассемблера.
Язык ассемблера — это не какой-то конкретный низкоуровневый язык программирования. За этим термином скрываются принципы создания нового синтаксиса для управления процессорами в разных архитектурах. Язык ассемблера представляет собой более функциональный и понятный синтаксис по сравнению с машинным кодом. При помощи ассемблера можно воздействовать на все процессы, происходящие внутри компьютера. Его синтаксис все равно остается очень сложным, по сравнению с другими низкоуровневыми языками и тем более с языками высокого уровня.
Еще один представитель языков низкого уровня — Forth. Этот язык появился в начале 70-х. В свое время он был очень популярным, поэтому что его синтаксис выглядел намного легче , чем машинный код или язы к ассемблера. На нем разрабатывали ядра и операционные системы. Сейчас этот язык практически не применяется.
CIL — низкоуровневый язык программирования от компании Microsoft. В самой компании его называют «высокоуровневы м Ассемблер ом ». Его применяют в качестве промежуточного языка в виртуальной машине «.NET». Все компиляторы, поддерживающие «.NET» , транслируют высокоуровневые языки из этой платформы на язык CIL, который управляет «железом».
Есть такие языки, которые являются «гибкими» или «среднеуровневыми», то есть они могут быть как высокоуровневыми, так и низкоуровневыми. К таким языкам относят С, С++, RUST и др. Почему так происходит? К языкам низкого уровня относят те языки, которые могут «напрямую» обращаться к аппаратным возможностям компьютера, например к процессору. «Гибкие» языки подходят под это определение. Поэтому их можно встретить в операционных системах и драйверах, где применяются языки низкого уровня. Но также можно встретить в разнообразных приложениях и играх, где применяются языки высокого уровня.
Заключение
- по какому принципу работает процессор;
- как работает оперативная память;
- как распределяются ресурсы компьютера между процессами и потоками;
- и др.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.