ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Лисоплан 2022

Сообщений 1 страница 9 из 9

1

Предыдущая тема - Лисоплан 2019 (осень)
(но это неточно, если найду более позднюю - поправлю)

0) уровень идеологии, философии, документации и обучения
  (по мотивам совершенно эпического топика Нужна идеология )
0.1) опора на собственные достижения,
0.2) Английских букв быть не должно. Греческих тоже.
   Англичане же как-то обходятся только латинскими. Китайцы только иероглифами. И только русские почему-то без греческих в математике никак.
0.3) сила документа. всё своё, документы, основания для того или иного
0.4) нужен бутстрап с самого низа по последовательным уровням,
  это нужно для доказательств корректности, для воспроизводимости на случай аппокалипсиса,
  и для обратной генерации кода искинами. Они же должны понимать что откуда и как,
  значит всё должно быть описано. И должно быть метаописание формальное. Возможно даже диалектическое.
0.5) ко всему требуются учебные артефакты
0.6) в учебных материалах должна быть онтология (и то что там ещё нужно)
0.7) очень к многому требуются описания форматов и/или спецификации
0.8) хорошо бы делать двухстороние переходы, как в модели "смысл-текст" (но это фантастика)

1) Уровень текстовых кодировок и алфавитов (УТКА)

1.1) нужно писать спецификации на тему того, как символы будут записываться битами
Юникод не нужен, УПС-8 даёт преференции не нам (и это проходит в реальную жизнь, например вдвое сокращая длину СМС-текстов)
КРЯ-8

1.2) Запись шестнадцатеричных чисел кириллицей.
0123 4567 89АБ ВГДЕ
0123 4567 89аб вгде

1.3) таблица кривулин для стандарта УТКА
её надо переписать, по сравнению с предыдущим подходом

1.4) базовое управление текстом
- переносы строк
- разрывы страниц
- группировка кластеров графем (начало группы, элемент, направление приклеивания, конец группы)
- управление передвижением пера между графемами

форматы будут почти у всего, нельзя сказать, что формат файлов для хранения .pdf-документов
относится к уровню кодировок. Но говорить о нём надо.
где управление базовое, а где расширенное?

1.5) Проблема: формат шрифтов и рисование букв в операционных системах.
Эта тема мной слабо изучена.

2) машкод
Уровень машинного кода
Надо найти такую программу на английском языке и перевести на кириллицу.
(аналог утилиты SRecord из опенсорса)
То, что SRecord написана на ЯВУ типа Си, это страшно (так как противоречит принципу бутстрапа, но помучавшись с этим можно справиться)

инструкции переводятся в байты "вручную" чтением руководства по процессору.
программа из инструкций так же составляется вручную вплоть до полного комплекта байтов для загружаемого файла

2.1) запуск и завершение (одна команда возврата управления операционной системе.

2.2) здравствуй мир
hello, world (сегмент данных, кодировки, переменные окружения, вызов АПИ ядра)

2.3) параметры командной строки,
чтобы из вывести на экран, а не просто текст из сегмента данных

2.4) обработка входного потока stdin

2.5) открытие файла по имери для ввода, для вывода (работа с файлами)

----

2.6) программа подсчёта контрольной суммы
я когда-то умел рассчитывать CRC32 (путём копирования из интернета),
а ещё раньше вроде бы и теорию понимал.

ECMA standard ECMA-182 (December 1992) — ISO/IEC 13421:1993
    I Full mathematical description (Annex B, p.51)

2.7) загрузчик байткода
ему не нужно ассемблировать мнемоники
ему не нужно расчитывать адреса

ему нужно читать стандартный ввод
ему нужно писать в стандартный вывод
ему нужно обрабатывать параметры командной строки

это программирование прямо в
кодах процессора
знание формата ELF-файла
знание соглашений ELF64 ABI для аргументов командной строки
знание функция ядра (linux, потому что БудДен пока не готов)
знание Юникода и УПС-8 в размере достаточном для вывода русских символов в ядро.
но вообще говоря кодировка консоли может быть и другая и определяется какая - переменными окружения

2.8) суперминимальный загрузчик, который набивается в кодах в 16-ричном редакторе вручную прямо в файле

2.9) расширенный загрузчик, который
оформлен в виде текстового файла, для засовывания в суперминимальный загрузчик,
этот текстовый файл грузится при помощи минимального загрузчика и умеет грузить разнообразные текстовые дампы
(и, вероятно, считает контрольные суммы)

2.10) утилита для создания дампа из двоичного файла

2.11) программа подсчёта контрольной суммы может как входить в загрузчик байткода,
так и быть отдельной утилитой

2,12) библиотека для работы с параметрами командной строки

binutils - это примерно это самое или что-то другое? Что входит в этот пакет binutils?
это другое, а вот SRecord, это то самое. ну и, наверное, objdump как парная программа? Хотя сам SRecord умеет и на чтение и на запись.

3) виртуальная машина,
которая тот машинный код сводит к машине Поста или к чему-нибудь такому.
и ещё одна другая, которая сводит к реальному железу. Для языка Синхро же понадобилась виртуальная машина.
и ещё одна для сведения к виртуальной машине UEFI.

4) ассемблер.
Семантика (или то прагматика?) ассемблера определяется виртуальной машиной,
поэтому машина раньше ассемблера

ассемблер1, написанный в кодах, но ассемблирующий себя
ассемблер2 (более расширенный? вычисляющий переходы? синтаксис с метками?), написанный на ассемблер1

5) бейсик (условные переходы, арифметические выражения)
бейсик, написанный на ассемблер2

6) язык с разными типами данных (типа языка ПОП)
статическая типизация, написанная на языке с динамической типизацией

вписывать Rust надо начинать где-то здесь, но здесь ещё нет кучи.

7) язык с массивами (типа Солуни, в котором массивов нет, но сильно обсуждались)
проверки выходов за границы и всё такое, написанный на языке со статической типизацией простых типов.

8) бейсик с подпрограммами (то есть со стеком)
бейсик2, написанный на бейсике1
стек можно эмулировать через массив

9) Язык c исключениями
(и раскруткой стека)

10) язык с функциями (типа Паскаля? или КуМир-а?)
кумир, написанный на basic2 (динамическая типизация)

исключения и раскрутку стека надо доработать для учёта наличия передачи аргументов функций через стек.

11) язык со структурами
структуры они как строки фиксированного размера? или как массивы с разнородными элементами.
наверное такой язык удобнее писать на языке с массивами, но это не очень понятно.
так-то ещё бейсик был с массивами, при том, что в нём не было функций (слово "функция" там означало другое)

12) язык с кучей и мусором (C++)

Вот здесь точно надо управлять памятью по-растовски, чтобы потом ещё сборку мусора реализовать.

13) язык со строками (типа Swift)
написанный на языке с массивами (по крайней мере массивами байтов).
строки хорошо бы хранить в куче, неудобно на стеке

14) язык со сборкой мусора (C#)

Rust бы сюда не вписался, если его специально не вписывать

15) язык со сборкой мусора реального времени (IBM Metronome)

15) язык с шаблонами (тут выходим за уровень Java и раннего C#, и там и там шаблоны не с начала были)

Синхро сюда бы не вписался

16) язык со вложенными процедурами и замыканиями (closure)

17) язык с примитивами синхронизации (async/await?)
им как раз нужны замыкания и куча, чтобы там их хранить

Но даже если это всё реализовать, получится "альтернатива КуМир-у для обучения в университетах".
(как по мне, так это будет супердостойный результат, не каждой стране под силу)
Да, в таком языке не будет ничего особенного, и, вероятно, не будет учтена модель "смысл-текст" московской лингвистической школы,
но тут и без этого столько работы, что её сложно переделать...

0

2

Лис написал(а):

0) уровень идеологии, философии, документации и обучения

Я уже писал об этом:
разработать русскую операционную систему (монохромный ГУИ),
разработать русский процессор (КМОП 3 мкм) и периферию,
разработать русскую файловую систему (желательно с текстовой структурой).

Лис написал(а):

1.5) Проблема: формат шрифтов и рисование букв в операционных системах.
Эта тема мной слабо изучена.

Я менял изображение букв в зарубежном редакторе TTF-шрифтов FontForge.
Используются кривые Безье.
Это очень интересно.
Очень много нюансов.

Лис написал(а):

7) язык с массивами (типа Солуни, в котором массивов нет, но сильно обсуждались)
проверки выходов за границы и всё такое, написанный на языке со статической типизацией простых типов.

В Солуни не будет выхода за границы массива,
так как в качестве индекса массива можно задать любое число.
Первый интерпретатор РЯП написан на Паскале.

0

3

Лис написал(а):

8) бейсик с подпрограммами (то есть со стеком)
бейсик2, написанный на бейсике1
стек можно эмулировать через массив

У меня была идея написать интерпретатор Бейсика,
для которого номер строки можно было бы писать
только в качестве ссылки от оператора GOTO.

То есть программа может быть такой же, как для обычного Бейсика,
а можно в ней убрать все номера,
на которые не приходится переход.
Таким образом программа становится более приятной для взгляда человека.
Человеку приятнее и быстрее понять структуру программы.

Лис написал(а):

9) Язык c исключениями
(и раскруткой стека)

Вот насчет Солуни у меня идея написать
монитор программного трафика.
То есть выполняется программа и
она пишет в лог каждую свою выполненную команду с конкретными на данный момент значениями.

Имея лог, в разы быстрее человек поймёт работу неизвестного ему алгоритма,
найдёт возможные баги,
предложит возможные оптимизации или доработки.

Лис написал(а):

11) язык со структурами
структуры они как строки фиксированного размера? или как массивы с разнородными элементами.
наверное такой язык удобнее писать на языке с массивами, но это не очень понятно.

Помню, в институте нам рассказывали.
Я своими словами напишу:
Структура описывает структуру данных.
Но тут надо подумать на конкретных примерах,
как это всё объяснить для человека и
как запрограммировать для машины,
тема для думаний и дискуссий.
Я, например, использую массив структур.
Когда его заполняешь значениями,
то массив структур превращается по сути просто в последовательность байтов.
Поэтому его можно записать сплошняком в один файл.

0

4

Можно прикрутить ЯП брэйнф*к.
Лис накатал годный план!

Но я бы ещё упомянул такие темы:
функциональное программирование (русский Хаскелл)
регулярные выражения (регулярность - мать порядка)
нейронные сети (мозг человека не рассматриваем)
метапрограммирование (алгоритм разрабатывает алгоритмы)
обучение без учителя (машина сама себя учит), эта тема пока что не запрещена.

0

5

NuShaman написал(а):

Первый интерпретатор РЯП написан на Паскале.

Вот зачем ты это написал (фразу информирующую об использовании вражеского Паскаля из стран не поддержавших резолюцию ООН против фашизма)? Для чего? Что хотел доказать?

В плане написано - опираться надо на свои наработки. Паскаль это чужие наработки.

Я написал в 1991-м году интерпретатор бейсика на бейсике MSX (некириллический) и что дальше-то?

Нечем хвалиться, что кто-то что-то написал, если оно не вписывается в философию проекта. Павиа написал компилятор ПОП, а БудДен его вычеркнул (и правильно сделал).

Если надо просто локализацию прикладной программы на самом верхнем уровне, чтобы побыстрее бабла срубить, это же совершенно другое.

Ты специально это написал, чтобы продемонстрировать, что ты так ничего и не понял?

Отредактировано Лис (2022-12-17 03:38:05)

0

6

Лис написал(а):

В плане написано - опираться надо на свои наработки.

Предположим, что когда-нибудь я напишу так:
"Интерпретатор РЯП написан на Ассемблере для процессора на архитектуре x86,
разработанной американской компанией."
Тоже такое лисоценз не пропустит?

Самое лучшее так:
"Интерпретатор РЯП написан в машинных кодах для процессора,
разработанного российской компанией."

0

7

Лис написал(а):

Вот зачем ты это написал (фразу информирующую об использовании вражеского Паскаля из стран не поддержавших резолюцию ООН против фашизма)?
Для чего?
Что хотел доказать?

Никлаус Вирт, создатель Паскаля, родился и живет в Швейцарии.
Швейцарская Конфедерация воздержалась.

Никлаус Вирт - это уроженец планеты Земля,
и он, как и я, не виноват в делах правительства своей страны
в области внешней политики.
Тем более, что разработал он ЯП Паскаль в другое время,
при других членах правительства и при другой политической обстановке в странах Евразии.
тогда мёд был слаще и девушки краше.

Сейчас, думаю, самое время, чтобы пользовать иностранные наработки и в хвост, и в гриву.
Наслаждаясь тем, что есть,
НО держать ориентир на полнокровное импортозамещение,
как завещал всем нам Дмитрий Анатольевич.

0

8

Лис написал(а):

Я написал в 1991-м году интерпретатор бейсика на бейсике MSX (некириллический) и что дальше-то?

Это круто для Лиса, у которого лапки!
Дальше нужно написать интерпретатор бейсик на РЯП,
после того, как я реализую механизм массивов.
Затащим все программы, написанные на Бейсике,
и интерпретатор странслирует их в РЯП.

Лис написал(а):

Ты специально это написал, чтобы продемонстрировать, что ты так ничего и не понял?

Я понял, что импортозамещение очень важно,
НО для замещения импорта нужно время,
чтобы сотворить российские технологии
.
А времени очень мало, так как я трачу время на зарабатывание хлеба.

0

9

Цитаты великих:

https://www.opennet.ru/openforum/vsluhf … 4.html#941

лучше медленно двигаться в нужном направлении, чем быстро - в неправильном.

Отредактировано Лис (2022-12-26 21:12:51)

0