Лингвофорум

Теоретический раздел => Интерлингвистика и лингвопроектирование => Тема начата: Alone Coder от февраля 12, 2017, 19:30

Название: Новый компьютерный язык
Отправлено: Alone Coder от февраля 12, 2017, 19:30
Последнее время я пишу компилятор самодельного языка. Сначала у него был синтаксис, где слова чередовались со знаками, знаки были односимвольные, контекст число левый. Но потом я понял, что не смогу его довести до самокомпиляции малыми шагами, если не сделаю совместимость с Си (через дефайны). Разворачиваться он будет, естественно, на ZX Spectrum.

Постепенно синтаксис сильно приблизился к Си, только все команды начинаются со слова (типа VAR, PROC, FUNC, LET, CALL), а у типизации префикс +. За счёт этого обеспечивается контекст на 1 символ вперёд и нет зарезервированных слов. И не нужны точки с запятой.

Хотелось бы минимальное время самокомпиляции и незначительный объём занимаемой памяти.

Пока не уверен, как строить проект: как в Си (с заголовками и линкером), через include в главном модуле или через проектный файл (тут варианты: компилировать как единый текст или пофайлово, но тогда проблема в линковке констант).

Что плохо в Си, по вашему мнению, и что стоит добавить (малыми силами)? И в какую сторону стоит мутировать после достижения самокомпиляции?
Название: Новый компьютерный язык
Отправлено: Alone Coder от февраля 12, 2017, 19:50
Ещё особенности:

строгая типизация (никаких неявных преобразований), char!=byte, указатель!=массив, есть система модулей, доступ к идентификаторам явно описывает место в дереве (в Си - любое место выше, что медленно).
Название: Новый компьютерный язык
Отправлено: basta от апреля 24, 2017, 22:04
идеи по синтаксису можно взять из Go для быстрой компиляции.
Название: Новый компьютерный язык
Отправлено: Alone Coder от апреля 25, 2017, 00:11
Да, вижу общее (кстати, call и let я сумел убрать без потери скорости). Но остальное несовместимо с Си. И сишный синтаксис for не может компилироваться быстро - у него два тела, из которых первое может выполняться после второго. Я не стал реализовывать этот оператор.

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

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

Первый релиз программы на нём (сам язык пока рассылаю только заинтересованным): http://www.pouet.net/prod.php?which=69770
Название: Новый компьютерный язык
Отправлено: kemerover от апреля 26, 2017, 10:38
А цель какая? Просто интерес и самовыражение?
Название: Новый компьютерный язык
Отправлено: Alone Coder от апреля 26, 2017, 12:47
Сначала чисто идеи, потом по работе стояла задача, но теперь вроде не стоит. А полноценная нативная среда разработки для Спектрума всегда была нужна.
Название: Новый компьютерный язык
Отправлено: Bhudh от апреля 26, 2017, 14:23
А игры для ZX на нём будут?
Название: Новый компьютерный язык
Отправлено: Alone Coder от апреля 26, 2017, 18:21
Вполне возможно. У меня есть пара недописанных движков.
Название: Новый компьютерный язык
Отправлено: maqomed1 от сентября 1, 2017, 18:11
Язык доступный к компьютеру, интернету очень нужен для создании и развитии искусственного интеллекта.
Название: Новый компьютерный язык
Отправлено: Bhudh от сентября 1, 2017, 23:55
Надеюсь, искусственный интеллект когда-нибудь поймёт предыдущий пост.
Пока на нём даже естественный спотыкается.
Название: Новый компьютерный язык
Отправлено: Alone Coder от сентября 2, 2017, 21:11
Кстати, если кто не читает ACNews: NedoLang уже работает на Z80 (самокомпиляция) и на ARM Thumb1 (проверено на довольно большом куске кода, который уже проверен на Z80). Качайте с моего сайта :)
Название: Новый компьютерный язык
Отправлено: Alone Coder от сентября 2, 2017, 21:13
Вот одна дема на этом языке (её исходники есть в комплекте): http://www.pouet.net/prod.php?which=69770

Сейчас Hippiman начал писать игру.
Название: Новый компьютерный язык
Отправлено: Hellerick от сентября 4, 2017, 15:31
Цитата: Alone Coder от сентября  2, 2017, 21:13
её исходники есть в комплекте
А посмотреть их где-нибудь можно?
Название: Новый компьютерный язык
Отправлено: Alone Coder от сентября 4, 2017, 17:53
http://alonecoder.nedopc.com/zx/nedolang170829.rar