https://softwareengineering.stackexchan … chine-code
«the first ever assembler / assembly language was implemented for the IBM 701 by Nathaniel Rochester.
IBM page states that "[a]ctual design started on February 1, 1951 and was completed a year later"»
Т.е. год фуллтайма, не две недели никакие.
«Первая в СССР гибридная толстоплёночная интегральная микросхема (серия 201 «Тропа») была разработана
в 1963-65 годах в НИИ точной технологии («Ангстрем»), серийное производство с 1965 года.»
Язык Эпсилон это 1967
https://ru.wikipedia.org/wiki/Минск-22
Серийное производство начато в 1965 году.
https://ru.wikipedia.org/wiki/Минск_(компьютер)
Машинами первого поколения под маркой «Минск» являются ламповая ЭВМ «Минск-1» и её специализированные модификации: «Минск-11», «Минск-12», «Минск-14», «Минск-16».
Всего было выпущено более 4000 машин серии «Минск», это составляло около 70 % парка машин в СССР в то время
Ершов ещё про компьютеры на лампах жаловался.
БЭСМ-6 (Большая электронно-счётная машина) — советская электронная вычислительная машина серии БЭСМ,
первая советская суперЭВМ на элементной базе второго поколения — транзисторах.
С 1968 года начат серийный выпуск на Заводе счётно-аналитических машин (САМ) в Москве.
Несмотря на то, что был кириллический язык программирования для машин на лампах,
он был не у нас. А у нас сейчас ничего нет.
Если сейчас идёт 2024, то отставание 2025-1952=73 года.
За это время поменялись ожидания от начального ассемблера.
Мы желаем от ассемблера такие функции, которых не все желали в древние времена.
Вы скажете, что "появилась литература". Нужная ли литература появилась, или она по другим вопросам? На русском ли она языке или на английском?
Если бы мы писали учебную литературу на тему "как сделать ассемблер", то что бы мы написали внутрь, какое у книги было бы содержание?
Ранее по теме
Как сделать нормальный ассемблер
На сегодня мы от ассемблера ожидаем, что:
1) его грамматика будет описана формально;
2) что грамматика будет обрабатываться автоматизированно, для исключения ошибок;
3) что ассемблер будет расчитывать адреса переходов (первые ассемблеры этого не делали).
Это автоматически означает, что мы умеем:
- писать грамматики для КС-языка;
- умеем руками преобразовывать грамматики к LL(1), а это можно сделать не с каждой;
- умеем делать рекурсивный спуск;
- умеем по регулярным выражениям делать ДКА (это нужно для токенов, меток там всяких);
- умеем работать с этими ДКА (минимизировать);
- умеем выполнять задачу оптимизации (хотя бы "многопроходным методом"), это для подбора длин инструкций переходов
На самом деле ничего этого мы не умеем. Если бы мы умели, это
выражалось бы в существовании русскоязычных учебников и методических указаний по каждому пункту.
Кроме того, всё это надо свести к единой системе кириллических обозначений,
чтобы не было "в разнобой".
Я уже предлагал написать книгу пользователю с ником Инженер, но он пропал.
Его, вероятно, не устроил мой низкий уровень знаний (это не было бы проблемой, если бы знания были у него, но видимо у него их тоже не было).
Но, что характерно, и сам он ничего не смог сделать (иначе бы мы об таком свершении услышали бы).
В это время требования к инструментам повышаются ещё дальше - теперь надо не только синтаксис описывать формально,
но ещё желательно и семантику. Т.е. чтобы код верифицируемо корректно генерировался, Coq и всё такое.
А под это надо отдельную книгу делать, с описанием матлогики, теории типов, пруверов и доказательного программирования.
Хорошо было Ершову - сказал что надо двигаться в этом направлении и в его время этого было достаточно.
А в наше время - недостаточно. Англоязычники двигаются. А мы - нет.
Да, понятно, что это разные уровни в бутстраппинге, сначала надо ассемблер более в ручную,
потом на его основе другой, следующий, более верифицированный. И мы пока не прошли даже первый этап.
Отредактировано Лис (2024-09-01 00:42:00)