дневник Яос

Операционная система, написанная на языке Оберон и проект её перевода на русский язык. Только технические вопросы.
БудДен
Сообщения: 886
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 25.07.20 19:05

Не знаю, как там ретроградный Меркурий, но поступательное движение, похоже, скоро сможет продолжаться.
Вот как на данный момент выглядит процесс преобразования ключевых слов. Было:

Код: Выделить всё

MODULE Proba;

CONST x = 1;

TYPE rr = POINTER TO RECORD i : INTEGER END;

OPERATOR ^ "="-(CONST a, b: rr): BOOLEAN;

(* OPERATOR ^ "="-(CONST a, b : rr): BOOLEAN; *)

END Proba.
Стало

Код: Выделить всё

модуль Proba;
конст 
	x = 1; 
тип 
	rr = укль до набор 
		i: INTEGER; 
	кн; 

	операция "="-(конст a, b: rr): BOOLEAN;
	кн "="; 
кн Proba.
(исправлена одна ошибка в парсере. Весь сыр-бор последних пары недель был из-за того, что TO нужно разделить на "НА" и "ДО", пока что этого не сделано, но подготовлена почва).

Можно обратить внимание, что комментарий потерялся. Такого происходить не должно и это является целью ближайшего эээээ времени.

БудДен
Сообщения: 886
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 29.07.20 12:35

https://gitlab.com/budden/jaos/-/commit ... a2394063a2 - новая порция описания языка. Ещё 10 страниц в очереди, ждут вычитку.

Кроме того, перелисованный компилятор собрался и даже немного обогатил синтаксическое дерево инфой о конкретной лексеме (отладка ещё впереди). Когда дерево будет достаточно богатым, можно будет непосредственно приступать к инфраструктуре переводчика. Думаю, это всё же вопрос не недель, а месяцев.


БудДен
Сообщения: 886
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 05.08.20 16:20

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

Начал создавать инфраструктуру для перевода. При ближайшем рассмотрении в задаче обнаружилось несколько довольно больших подзадач. Дерево грамм. разбора довольно сложное.

Изначально планировал расширить язык, чтобы можно было задавать и английское, и русское название для сущности. Однако подумал-подумал и вместо этого добавил специальные метаданные, в которых и будут указываться переводы. Это соотносится с общей идеем, что мы создаём ОС на русском языке, а английского в ней не более, чем для того, чтобы она не перестала работать. Был в один момент дрейф в сторону двухъязычности, но теперь с этим покончено. Избавиться от английских названий сразу не получится, т.к. команды могут вызываться по динамически формируемым именам, которые никаким способом, кроме полного тестирования, найти нельзя. Полное тестирование нам недоступно. Поэтому в течение длительного времени у всех внешних (интерфейсных) имён останутся английские переводы, к-рые будут загружаться из вот такого XML файла на достаточно раннем этапе загрузки.

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

https://gitlab.com/budden/jaos/-/commit ... e66eff35e1

БудДен
Сообщения: 886
Зарегистрирован: 07.10.18 14:01

Re: дневник Яос

Сообщение БудДен » 05.08.20 16:26

Параллельно идёт работа над переводом описания языка, пока что оно выглядит вот так:

https://gitlab.com/budden/jaos/-/blob/c ... е-языка.md

Это 3/8 общего объёма документа.

Ещё один кусочек находится в конвейере, рассчитываю на этой неделе его допилить.

Ответить