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

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

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


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » планирование » Как-же, как-же, написать нам русский yacc ?


Как-же, как-же, написать нам русский yacc ?

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

1

Некоторые спрашивают, какие есть конкретные мысли по этому поводу.
По-моему я уже всё это писал, но мне не лениво повторить:

1) берём русскую разработку русского профессора - парсер Whale Calf
Александр Охотин
http://users.utu.fi/aleokh/whalecalf/
это пусть и медленный алгоритм (N^3), зато мне кажется он практически удобнее чем LALR(1)
2) берём грамматику EBNF откуда-нибудь с GitHub
3) берём какой-нибудь язык с большим количеством разработчиков (например C#), и переписываем код

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

Вы скажете, мол C# - это не русский язык. Ну так не всё сразу. Сначала русские описания грамматик, потом русский ассемблер на их базе, потом русский аналог C, а дальше сообщество заведётся и начнёт генерировать. Да даже одну только новость о запуске GitLab Яр-ом можно распиарить на всю страну.

У меня встречный вопрос - а какие идеи по этому поводу у вас?

Отредактировано Лис (2017-06-05 07:44:18)

0

2

В качестве целевого языка (в который генерировать код из EBNF-правил) настойчиво предлагают AL-IV. Хотелось бы чтобы кто-нибудь его не только разрекламировал, но и описал как начинать пользоваться языком AL-IV.
Альтернатив в общем-то и нет. Если калькулятор можно таки написать на языке Кумир, то для объектно-ориентированного программирования Кумир не годится. Язык "Яр" Буддена пока не готов в части документирования (может лет через 10 будет).

UPD: Алфор не пройдёт - AL-IV

Отредактировано Лис (2017-06-21 19:12:54)

0

3

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

Сначала русские описания грамматик, потом русский ассемблер на их базе, потом русский аналог C, а дальше сообщество заведётся и начнёт генерировать.


У меня встречный вопрос - а какие идеи по этому поводу у вас?

У меня создаётся впечатление, что не только я, но и другие не горят желанием малость поработать с машинным кодом, создавая русский ассемблер.
Как изготовить перечень аббревиатур и представить их в файле наподобие "dll" - наверняка все знают.
Как присвоить любой аббревиатуре исполняемый машинный код - тоже наверняка знают.
Как составить таблицу аббревиатур и состряпать из неё нечто, подобное "dll" - тоже знают.
Как вывести это всё не на консоль, а в окно в удобном для использования варианте - наверняка умеют.
Где взять перечень машинных кодов - найти можно, даже я не поленился.
На чём написать пробный вариант - желательно на "асме", хотя выбор за автором.
За чем дело встало - не знаю... Все уповают на недостаток времени. У меня времени полно и если кто из присутствующих согласен взять меня "на прицеп" - будет польза.

0

4

Сандро написал(а):

На чём написать пробный вариант - желательно на "асме", хотя выбор за автором.

А я думаю по-другому, и несогласен с Яр-ом по поводу ФАСМ (который как раз на асме написан).
Времена изменились, мощностей полно, поэтому можно ассемблер написать на ЯВУ, это проще. Вот и надо писать на ЯВУ с русскими ключевыми словами.

Уже писал, что лично мне ассемблер нужен как тест генератора типа yacc. А не ассемблер сам-по-себе как полезная штука.

Отредактировано Лис (2017-06-22 18:15:15)

0

5

Сандро написал(а):

У меня создаётся впечатление, что не только я, но и другие не горят желанием

На самом деле, это серьёзный вопрос: понять причины собственного нежелания :)

Сандро написал(а):

За чем дело встало - не знаю...

Надо начать делать, тогда откроются трудности, которые ещё не видны:

1) не так просто придумать понятные аббревиатуры;
2) не все команды можно определить через сопоставление;
3) кроме команд есть вспомогательные конструкции;
4) команды необходимо поместить в файл с особой структурой;
5) работа программы в окне - это подключение возможностей операционной системы;
6) работа с текстом программы в окне - это создание отдельных инструментов со своими сложностями.

Сандро написал(а):

Все уповают на недостаток времени.

Самый простой вариант: найти открытый для изменения компилятор и провести его русификацию. Для того чтобы написать самому и сделать это хорошо, надо описать грамматику языка. Начать надо с небольшого подмножества команд, для которых пройти все этапы генерации. Затем постепенно расширять это подмножество, каждый раз уточняя и описывая более полную грамматику. Есть разные способы и подходы. Другой вопрос: а нужно ли это делать именно Вам?

0

6

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

Уже писал, что лично мне ассемблер нужен как тест генератора типа yacc. А не ассемблер сам-по-себе как полезная штука.

- Давайте побудем малость альтруистами...  :hobo:  :rofl: )))

Инженер написал(а):

трудности, которые ещё не видны:

- С этим я согласен. "Подводные камни" - они такие... )))
1) Если аббревиатуры лягут в отдельный файл - таки пущай будут "непродуманы", после легко усовершенствовать, ведь файл-то один...
Предчувствую реплику: "Придётся делать изменения и в других местах". - Да, возможно и придётся, если в других местах аббревиатура является константой, а не соответствующей переменной из файла аббревиатур.
2) Возможно и не все, но хотелось бы увидеть примеры. Если не я, то любой другой "чайник" будет уже в курсе, прочитав это у нас и на нашем языке. А это уже польза для общества.
3) То же, что и в реплике под номером 2).
4) Это можно обсудить, а заодно и перечислить подходящие для этого структуры. Это тоже будет полезно потомкам, ежли будет озвучено.
5) Пусть появится хотя бы на одной операционке, да и аналог подобной программы уже существует, я её уже тестил чуток. Вот она.
6 То же, что и в реплике под номером 5).

Инженер написал(а):

а нужно ли это делать именно Вам?

Если не я, то кто же?...

В I веке до н.э. жил крайне почитаемый в иудаизме персонаж по имени Гиллель, занимавший должность главы синедриона за несколько десятилетий до печально известных событий с участием Каиафы и Иисуса. Прославился этот деятель, прежде всего, как образец бескорыстного и нравственного человека; да и идеи, которые он проповедовал, не могут не вызывать симпатии: например, он рекомендовал богословам «не говорить такого, что невозможно понять, полагая, что, в конце концов, ученики разберутся» (многие современные преподаватели вполне могли бы прислушаться к совету мудреца) и настаивал на необходимости творить добро здесь и сейчас, что и составило костяк его философии.

Именно цитату из его трактата под названием «Авот», насколько я могу судить, можно считать первым известным вариантом упомянутой в вопросе фразы. Звучит она так: «Если не я себе — кто мне? А когда я себе — что я? И если не сейчас, то когда?» Потом нечто подобное сказала Жанна д`Арк; затем, уже в форме «кто, если не мы?» ее взял на вооружение комсомол; потом, в форме «никто, кроме нас» - ВДВ, но это уже совсем другая история, не имеющая ничего общего с изначальным гуманистическим посылом.
Источник

0

7

Сандро написал(а):

Если не я, то кто же?...

Если имеешь знание, то отвечай ближнему, а если нет, то рука твоя да будет на устах твоих.

0

8

- Именно... Буду "испрошать", покуда не ответят, а утаят - Боженьке пожалуюсь...  :D )))

0

9

Далее по теме:
Как получить русские lex и yacc

0


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » планирование » Как-же, как-же, написать нам русский yacc ?