Другие языки программирования и технологии

А вот правельно ли я думают о языках программированиях? И каквообще делают?? (см.внутри)

Мне кажется что вводя команду, скажем в окно ку-бейсика (на других долго расписывать) INPUT x, y x / y = z print "z="; z C инпутом понятно, там какбы оперативка подключается расмотрим эту строку x / y = z тоесть если знак деления находится в программе то при её выполнении подключается какойта чип, процессор, который занимается сложением вычитанеием умножением или делением чисел. Тоесть как бы при вводе команды, подключается какоето устройство. И тоесть как бы так языки программирования и делают? Просто "биндят" какую либо команду к определённому устройству, которые выполняет своё дело? Если так то как это делают, на специальных ОС, или как? С помощю чего делают языки программирования?
Программа с любого языка сначала проверяется на синтаксические ошибки, потом транслируется на ассмеблер и машинный код. В данной проге деление происходит внутри процессора непосредственно, а вообще на деле мат. ф-ими занимается мат. сопроцессор. вот пример на ассемблере:
data segment
x dw 10
y db 5
z db ?
data ends
assume cs:code, ds:data
START: mov ax, data
mov ds, ax
lea bx, x
mov ax, [bx]
lea bx, y
mov dx, [bx]
idiv dx
lea bx, z
mov [bx], al
DELAYendp
codeends
endSTART
Се
Сергей
198
Лучший ответ
Руслан Гизатуллин а в ассемблер траслируется во всех языках?
Нет, у вас неправильные представления.
В машинах все операции совершаются в регистрах процессора. Это специальная ограниченная быстродействующая память процессора, для которой определены различные команды, как например, деление, умножение и т. д.

Когда Бэйсик анализирует входную строку, он, во-первых, проверяет ее на правильность синтаксиса. Затем данные, то есть переменные переводит в машинное представление, а затем эти данные заносит в регистры и выолняет соответсвующую машинную команду над регистрами.
Андрей Тимохин
Андрей Тимохин
79 586
ассемблер тебе поможет
Ержан Сериков
Ержан Сериков
13 478
Во-первых,
x/y = z вас убьет. Нельзя результату деления что-то присваивать.
Во-вторых, в каком-то смысле, да. Каждый оператор императивного языка программирования преобразуется в последовательность (!) команд ассемблера, а те однозначно соответствуют командам процессора. Фактически, шаг языка ассемблера может пропускаться.
Но нельзя сказать, что какой-то юнит подключается или отключается. Например, команда перехода (типа goto) изменяет регистр IP (EIP, RIP). Но регистр IP меняется при выполнении любой команды, только при переходе он меняется произвольно, а при обычном выполнении - на длину команды, чтобы перейти к следующей. То есть, этот юнит активен всегда.
Языки программирования ничего никуда не биндят, они лишь описывают суть операций. Может быть, это будет новостью, но кроме императивных языков есть декларативные, которые машине говорят не "сделай то-то и получишь, что надо", а "вот то, что надо. Получай. ". Тут уж ни о каком бинде говорить вообще не приходится.

Для императивных языков есть процесс компиляции или трансляции, который и делает этот "биндинг". Но опять же - язык ничего не связывает с командами процессора. Например, на x86 умножение двух чисел - это одна команда, а на процессорах ARM - другая, или вообще несколько. А на том же бейсике это пишется одинаково - *. Трансляторы - компиляторы работают почти под любой операционной системой.
JB
James Bond
6 454
Руслан Гизатуллин невту сторону написал =\
Спасибо тебе, автор вопроса! Мой день прожит не зря.
Руслан Гизатуллин непонял поясни О_о