[html]
см. также
<a href="https://plana.mybb.ru/viewtopic.php?id=740#p2973">2018-2</a>,
<a href="https://plana.mybb.ru/viewtopic.php?id=547#p1603">2018-1</a>,
<a href="https://plana.mybb.ru/viewtopic.php?id=383#p872">2017</a>,
<a href="http://ruscomp.24bb.ru/viewtopic.php?id=161#p2512" rel="nofollow" target="_blank">2016</a>
<br />
<br />
Что произошло за эти полгода и что поменялось в российском программировании?
<br />
<br />
1) сообщество языка 1Скрипт расширилось c 71 до 129 человек
<br />
(<a href="https://plana.mybb.ru/viewtopic.php?id=403#p996">https://plana.mybb.ru/viewtopic.php?id=403#p996</a>)
<br />
это к вопросу о том, как правильно привлекать людей (какие вопросы в комментариях к заметке о берестяной грамоте с этим сравнятся? никакие)
<br />
<br />
2) 2018-12-31, Павиа опубликовал компилятор для языка программирования ПОП
<br />
<a href="http://remdev.org/viewtopic.php?id=314">http://remdev.org/viewtopic.php?id=314</a>
<br />
Это привело к временному снижению дискуссий (ну о чем говорить, надо просто брать и делать, и пример капиталистической доблести у нас теперь есть)
<br />
<br />
Этап написания кириллического транслятора логически предшествует всяким там "сделать среду" (и исторически тоже предшествует - сначала gcc, и только потом github).
<br />
Поэтому именно на написании кириллического транслятора нужно сосредоточится, как это делает Павиа со своим языком "Олеся".
<br />
Лис считает, что невозможно обойти этап написания кириллического транслятора, то есть никак невозможно. Либо идеология чучхе, либо "прогиб засчитан".
<br />
<br />
Поэтому план остаётся таким же, каким и был (в топике <a href="https://plana.mybb.ru/viewtopic.php?id=740#p2973">2018-2</a>):
<br />
используя готовые площадки (github-а более чем достаточно, и 1Скрипт это доказывает) поэтапно создать кириллический транслятор.
<br />
Этапы создания известны нам из истории:
<br />
- базовый ввод-вывод
<br />
- метки и переходы
<br />
- операторы и операции
<br />
- подпрограммы с параметрами
<br />
- обработка исключений
<br />
- формализация системы типов
<br />
- выделение памяти в "куче", динамическое
<br />
- управление мусором
<br />
- вывод типов/type inference
<br />
- реализовать асинхронные функции (async/await)
<br />
- генерация детерминированных конечных автоматов (yield return)
<br />
- можно сюда добавить "горячую замену кода", хотя она реализовывается поверх RTTI/Reflection
<br />
Перечислены только самые ключевые отличительные механизмы. Для обсуждения того, как их запрограммировать на этом форуме есть специальный подфорум для этого (только обсуждений там нет)
<br />
<br />
И вот после этого можно переписывать github, как хочет atzx.
<br />
<br />
Почему Лис не показывает свои коммиты? Потому у Лиса нет в этом необходимости, хватает "текстового файлика", как рекомендовал MihalNik.
Никто не поддерживает мои устремления, у всех есть их собственные, и они другие - поэтому их устремления не могу поддерживать я.
<br />
<br />
Какие задачи нужно выполнить, для того, чтобы написать русский ассемблер для Linux (и сколько времени и денег для этого нужно):
<h2>Туториал по формату ELF-64</h2>
- нужно изучить спецификацию на формат ELF-64
<br />
- результатом изучения является туториал с отсылками к первоистонику
<br />
- нужно научиться эту спецификацию применять в процессе получения бинарного образа
<br />
- результатом этой работы является код, формирующий заголовок ELF-файла
<br />
на этом этапе нет необходимости уметь читать объектные файлы, нужно только уметь формировать правильные выходные бинарники.
<br />
можно, в принципе, обойтись и без такой функции, и формировать заголовки файлов непосредственно ассемблерным кодом.
<br />
все эти мысли уже, наверное, были выписаны на форуме "русскоязычное программирование".
<br />
тем не менее, задача изучения специфкации не снимается, а значит нужен и результат такого изучения в виде документа.
<h2>Туториал по системным вызовам Linux ABI</h2>
Как собственно делают системные вызовы
<br />
Какие есть/бывают соглашения по оформлению вызовов
<br />
Какие есть полезные для программы Hello World функции в API.
<h2>Туториал по некоторым ассемблерным командам</h2>
Нужно выписать команды, которые понадобятся в тексте программы Hello, world,
<br />
для разбора аргументов командной строки
<br />
для чтения из входного потока
<br />
для записи в выходной поток.
<br />
Какие именно команды потребуется описать в туториале станет ясно только после написания самой программы Hello World
<h2>Полный текст программы Hello, world</h2>
На ассемблере GAS.
<h2>Процедура ассемблирования (трансляции/компиляции)</h2>
Какими командами преобразовывать текст в байты и почему именно такими.
<h2>Туториал по строению кодов команд</h2>
Если в туториале по командам описывается смысл команд,
то в этом туториале рассматривается формирование бинарного кода команд.
И используемые при этом концепции.
[/html]