Всем привет. Прочел книгу "Код. Тайный язык информатики" от Пецтольда и сейчас практически дочитал "Архитектура компьютера 6-е издание" от Таненбаума и Остина. Понял поглубже как работает железо на разных уровнях описанных у Таненбаума. Но меня по прежнему волнует один вопрос, на который я не совсем могу дать себе ответ.
Как был создан ассемблер ? Есть догадки, что была какая-то интегральная схема которая считывала данные из памяти, в виде последовательности ASCII кодов, и преобразовывала их к код который понимает определенная машина.
Посоветуйте пожалуйста глупому мне какую-нибудь литературу или статьи в интернете, которые помогу разобраться с этим.
Заранее благодарю вас за ваши ответы и прошу сильно не пинать меня за мою глупость.
Есть догадки, что была какая-то интегральная схема которая считывала данные из памяти, в виде последовательности ASCII кодов,
Нет. Ты или что-то недочитал или сильно много перечитал.
Самые первые ЭВМ были стендами с переключателями и лампочками. И чтобы их программировать надо было знать систему команд. То бишь соответсвие положения переключателя со смыслом который она делает. Например 0101 (переключалели вверх-вниз дважды) к примеру несет смысл сложить числа в ячейках 1 и 2 и сохранить результат в ячейке 1. И чтоб не парится сильно - ввели обозначение ADD &1, &x2. Разумеется синтаксис я придумал просто для пример.
Про переключатели и условные обозначения там было сказано как раз в 7 главе про "Уровень ассемблера", от этого легче не становится, ибо понимание того как появился тот же ЯП Fortran или ОС CP/M не прибавилось, скорее всего из-за моей глупости как я уже говорил.
s2d1ent, самое первое программирование - рисовали на бумаге математики. Поэтому если глубоко копать в историю то можно видеть следы математических формул (фортран). А уже конец 20-го века - был расцветом ООП. А сейчас - снова эпоха переосмысления. ООП себя вычерпал - стали искать истину в том что было 70 лет назад.
Не надо искать понимания появления. Всё это появлялось итеративно. Как инженерное приспособление. Неудобно было помнить в голове краткий код (КК) - сделали Ассемблер. Неудобно было кодить Unix на ассемблере - создали С. Неудобно было на сях учить школьников - создали Pascal.
Не совсем понятно, что именно вас интересует. Однажды люди притомились писать программы машинным кодом и придумали для каждого опкода процессора мнемокод. Так появился язык ассемблера. Потом люди притомились вручную переводить из мнемокодов в опкоды и написали для этого программу.
Т.е по итогу люди пощелкали тумблерами, чтобы написать программу которая будет щелкать тумблерами за них и эта программа уже как раз понимала условные обозначения понятные человеку ?
чтобы написать программу которая будет щелкать тумблерами
примерно в ту же эпоху с тумблерами (и даже чуть раньше, ибо табулятор IBM ещё не был настоящим компьютером) были перфокарты (и чуть позже перфоленты), как носители информации (программ и данных).
Щёлкать тумблерами программы не могли, :) (даже сегодня моторизованный рубильник стоит каких-то конских денег) а вот пробивать дырки в нужных местах на картах или на лентах - в принципе могли.
Интересно то, как компьютеры интерпретировали символы ASCII кодов и получали команды процессора на выходе, т.е условно ты ввел: ADD EAX, 6, а у тебя получилась какая-то последовательность нулей и единиц.
Т.е уже именно тот момент когда люди обленились переводить условные записи ассемблера с листочка вручную и доверили это программе.
Компьютер ничего не интерпретирует - ему на входе нули и единицы,, как и раньше. А переводом команды add eax,6 займется специально обученный человек компилятор.