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



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

Автор Evolve задал вопрос в разделе Другие языки и технологии

чем отличается низкоуровневое программирования от высокоуровневого? и получил лучший ответ

Ответ от Андрей БАРСик[гуру]
Низкоуровневое ближе к прямому программированию железа (процессора, внешних устройств)
тебе необходимо помнить об архитектуре процессора, разрядности процессора может даже об регистрах процессора и их количестве.. .
При высокоуровневом программировании ты абстрагируешься (для тебя эти детали не важны) от этих технических деталях, и чем от большего
количества деталей абстрагируешься тем более высокоуровневое программирование.
Как пример,
самый низкоуровневый язык - это ассемблер, при программировании на этом языке ты должен знать команды процессора, количество регистров и их названия
а т. к. процессоры бывают разные - архитектуры x86 (Стандартный Intel-ий процессор) , amd64 (64-х разрядный процессор) , ARM (процессор для мобильных устройств)
то и ассемблеры также разные, и программы написанные для одного ассемблера не запустятся на другом (правда бывают специальные компиляторы - кросс-компиляторы)
более высокоуровневый язык - язык C. Хотя на этом языке тоже можно учитывать архитектурные особенности процессора (для оптимизации по скорости) , но если стараться их не использовать
или использовать их в строго выделенных фрагментах кода, то тогда можно программу, написанную на C компилировать и для других процессоров (с изменениями только участков кода, специфичных для процессора)
есть, соответственно и более высокоуровневые языки программирования (которые ещё более абстрагируются от аппаратуры и даже деталей операционной системы (в таком случае
программа может быть скомпилирована например и для Windows и например для Linux))
современная тенденция - виртуализация аппаратуры, когда вы создаете виртуальный компьютер с API (програмным интерфейсом для программ) , и программы для этого виртуального компа
можете выполнять везде, где есть загрузчик этой виртуальной машины
как пример - язык JAVA который запускается на виртуальной JAVA машине
или платформа .NET от Microsoft

Ответ от Ўрий-17[гуру]
Александр, странно, что что-то Вам не понравилось в ответе Андрея!
Вам наверное не понравилось, что Си он назвал более высоким языком программирования, но это действительно так! Язык Си вообще относят к языку среднего уровня, так как в нём есть элементы и низкого и высокого уровня. Так, что почти во всём Андрей прав.
Я бы сделал ему, только одно замечание: AMD64 - это не 64-разрядный процессор, а обычный 32-разрядный, но имеющий блок совместимости с 64-разрядной архитектурой. Конечно данное деление процессоров строго не регламентировано, но внимательно читайте исходные хелпы. Никто из производителей не называет подобные процессоры (с совместимостью) 64-разрядными. Пример 64-разрядного у Интела - это Itanium и Itanium2.

Ответ от Александр Самсонов[гуру]
НП требует:
- знание архитектуры устройства;
- знание "железа" ;
- программа пишется на машинном коде и используется как правило ассемблер, язык FORTH или язык С (без ++ или #)

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

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: чем отличается низкоуровневое программирования от высокоуровневого?
Низкоуровневый язык программирования на Википедии
Посмотрите статью на википедии про Низкоуровневый язык программирования
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*