Что такое низкоуровневое программирование? - Компьютерные вопросы
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Что такое низкоуровневое программирование?

Регистрация
30 Дек 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Что такое низкоуровневое программирование?
 
Регистрация
13 Июн 2013
Сообщения
58
Репутация
0
Спасибо
0
Монет
0
Это когда пишут низкоуровневые операции, работа с памятью, со стеком напрямую, пишут и программируют контроллеры, биосы, пишут драйвера, новые операционные системы, работа с железом напрямую. Здесь только Ассемблер, Си и С++.
Python на такое не способен. Да и еще python в тысячи раз медленней, чем языки, которые я написал.

Либо правка участка кода другой программы. Через память напрямую.

Python - общение с компьютером на "Вы"
Ассемблер, Си, С++ - на "Ты"
 
Регистрация
6 Авг 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Процессор напрямую понимает набор определённых команд в двоичном коде (последовательность нулей и единиц). Чтобы людям было легче создавать программы, каждую команду в двоичном коде обозвали некоторым английским словом, описывающим суть этой команды. Так появился ассемблер - переводчик команд на английском языке в двоичный код. Каждой команде соответствует свой набор нулей и единиц. Ассемблер - самый низкоуровневый язык программирования. Ниже его может быть только двоичный код.
Но программы на ассемблере писать сложно и долго, а сами программы выходят громоздкими, много ассемблерных слов. Ассемблер требует прямую работу с процессором и памятью.
Потому люди разработали языки более высокого уровня. Они содержат в себе свои наборы команд, которых нет в ассемблере. Но одна такая команда содержит в себе набор команд ассемблера - то есть готовый написанный алгоритм из десятков или сотен слов ассемблера, представленный в высокоуровневом языке всего ОДНИМ или несколькими словами, понятными человеку. Это существенно ускоряет и упрощает разработку и программирование, делает код читабельным и понятным. Но и такие языки можно ещё облегчить и ещё ускорить разработку, создавая тем самым на их базе ещё более высокоуровневые языки. Таким, например, является язык Python. Он написан на C, а сам C создан на ассемблере и на самом себе (вот это поворот, сам о таком не знал, но язык сам себя собирает).
Вот пример программы, выводяшей на экран "Hello, world!":
Python: print("Hello, world!") C: #include

int main() {

printf("Hello World!\n");

return 0;

} Ассемблер: .model tiny

.code

ORG 100h



begin:

MOV AH, 9 ; Функция вывода строки на экран

MOV DX, OFFSET Msg ; Адрес строки

INT 21h ; Выполнить функцию

RET ; Вернуться в операционную систему



Msg DB 'Hello, World!$' ; Строка для вывода

END begin

Чем выше уровень, тем короче и проще программа. Но с повышением уровня теряется производительность и гибкость управления компьютером
 
Регистрация
22 Окт 2012
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
низкоуровневое программирование - это когда программист общается с компьютером на ТЫ, а не на ВЫ.
 
Регистрация
13 Апр 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
ближе к самому железу, работа с компонентами компьютера
 
Регистрация
20 Июн 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
Это когда тебе не нравиться игра пытаешся найди строки понятного кода, а разработчики фигня оказались, и у них проверка файлов записана в exe ишник и тебе приходиться копаться в assembler
 
Регистрация
25 Сен 2013
Сообщения
89
Репутация
0
Спасибо
1
Монет
0
Программирование без помощи БИОС, ОС, непосредственно в инструкциях процессора или с помощью Ассемблера и С. Работа прямо с портами и реальными физическими адресами.
 
Сверху Снизу