Машинно-ориентированное программирование
Машинно-ориентированное программирование — это процесс создания программы, где исходный код пишется на машинно-ориентированном языке (например, на языке-ассемблере).
Программы, написанные на машинно-ориентированных языках чаще всего не кроссплатформенны. Хотя, в качестве исключения, можно взять в пример программы, которые не используют системные вызовы, относящиеся к определённой ОС, а также, использующие машинные операторы, которые есть во всех известных процессорных архитектурах.
Машинно-ориентированное программирование имеет смысл быть в сфере системного программирования, но в некоторых случаях его применение является бесполезным (а иногда даже невозможным).
Применение машинно-ориентированного программирования[править | править код]
Даже сегодня, когда существует множество языков программирования высокого уровня, таких как Python или же Java, машинно-ориентированное программирование остаётся более, чем просто востребованным. Вот самые распространённые случаи его применения:
- Программирование некоторых микроконтроллеров (например, создание драйвера клавиатуры).
- Создание программ для различных дисплеев, станков и так далее (что можно отнести к прошлому пункту).
- Создания загрузчика для ОС.
- Создание ОС (отличается от предыдущего пункта тем, что на машинно-ориентированном языке пишется не только загрузчик, а также, например, ядро ОС).
Плюсы и минусы[править | править код]
Плюсы[править | править код]
- Оптимизированные программы: затраты памяти минимальны, а один оператор, написанный на языке-ассемблере, равен одному машинному оператору (за исключение можно взять макро- и псевдооператоры).
- Облегчённая отладка программ: библиотеки отсутствуют, соответственно весь код будет написан программистом.
Минусы[править | править код]
- Объёмный код: часто приходится писать подпрограммы для вывода строк (или даже символов).
- Сложное освоение: кардинальные отличия от программирования на языках более высокого уровня.
Машинно-ориентированные языки программирования[править | править код]
- NASM — свободный язык-ассемблер для архитектур Intel x86, используется при написании 16-, 32- и 64-разрядных программ.
- FASM — свободно распространяемый многопроходной язык-ассемблер для машин с архитектурой x86 с открытым исходным кодом.
- GAS — язык-ассемблер проекта GNU, используется в компиляторах GCC.
- MASM — язык-ассемблер для процессоров семейства x86. Изначально был произведён компанией Microsoft для написания программ под MS-DOS, в одно время был самым популярным ассемблером для этой ОС.
- TASM — программный пакет, предоставляемый компанией Borland, для разработки программ на ассемблере под архитектуру x86.
- YASM — язык-ассемблер, который является попыткой полностью переписать NASM.
На этом список машинно-ориентированных не заканчивается, но здесь приведены самые часто используемые языки-ассемблеры.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |