LINUX.ORG.RU
решено ФорумTalks

Как грамотно и качественно создать свой ЯП?

 ,


2

2

Привет. У меня есть наброски своего языка программирования, теперь думаю как лучше его реализовать. Цель - создать быстрый и практичный язык для продакшена, чтобы писать на нём проги, а не просто сделать, поиграться и выбросить. И мой вопрос не в том как сделать язык вообще, а именно как сделать лучше.

Язык планируется общего назначения, высокоуровневый, с автоматическим управлением памятью, многопоточный, мультипарадигменный, js-подобный, скрипты будут во время выполнения компилироваться на лету в байт-код или в машинный код, который будет сохраняться на hdd и впоследствии будут загружаться именно он.

Хотелось бы выслушать мнение профессионалов, какие есть косяки в известных языках и компиляторах, чтобы не повторить их снова, какие есть тонкие моменты, которые стоит учесть.

По поводу самого языка:

1. Нужны ли классы? Мне нравится прототипное программирование и я не понимаю, зачем тогда нужно класс-ориентированное. Какие преимущества даёт класс по сравнению с прототипом?

2. Как лучше организовать области видимости? В разных языках это устроено по разному и трудно понять как именно лучше и удобнее в работе

3. Какие фичи лично вам бы хотелось видетьв новом ЯП?

По поводу реализации:

1. Байт-код или машинный код? И если первое, то регистровая машина или стековая?

2. Какие есть рекомендации по разработке сборщика мусора и оптимизатора?

3. Как лучше организовать возможность обращения к объектам программы извне? В частности, как хранить в скомпилированной программе метаданные (имена и типы переменных)?

4. Какие посоветуете готовые разработки, которые можно приспособить для своего языка? Компиляторы, виртуальные машины, генераторы парсеров, библиотеки, среды разработки?

5. Как вообще лучше реализовать jit-компилятор?

Перемещено tailgunner из development

Ответ на: комментарий от Deleted

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

Разве? Бессмысленная стена текста с «дак» - царь вернулся.

Хотя по короткому тексту да, узнать трудно.

tailgunner ★★★★★
()
Ответ на: комментарий от russian-turist-2019

hello world (который просто выводит фразу) в 16 строк кода на высокоуровневом яп(хотя по нормальному, должна быть одна строчка).

Есть много ЯП где это и будет одна строчка.

но почему-то никто не сказал что я делаю не так с llvm.

Сделай отдельную тему с конкретным вопросом и соответствующим тегом. Занятым «опытным» не интересно копатся в здешеней куче «царских» отходов. А тем кто здесь отметился не интересен твое языкостроение:(

antares0 ★★★★
()
Ответ на: комментарий от tailgunner

У меня теплится надежда, что его раньше настигнет банхаммер

Какой в этом практический смысл? Он зарегистрируется еще раз, как много раз делал до этого.

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

Хорошо бы помечтать про бан по ДНК

К сожалению, это невозможно. Но, пока его текущее воплощение не забанено, можно использовать игнор.

Да, судя по всему, после того, как субъект опытным путем нашел для себя позицию, при которой правила не позволяют его выпиливать так, как раньше, остается только игнор. Жаль, кто не коллективный.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Deleted

Хотите, кстати, более интересную и практичную задачу? Вот вам в теме Царь написал несколько довольно обширных текстов. Смогли бы по нескольким образцам его творчества детектировать его новые сообщения?

Достаточно определить, кто в любом треде пишет больше всего объемных портянок. На 95% это будет он.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

субъект опытным путем нашел для себя позицию, при которой правила не позволяют его выпиливать

Правила позволяют его выпиливать и его выпиливали десяток раз.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

На данный момент есть основания для его забана? Если есть, то почему он не забанен? Если нет, при том, что он вовсю занимается своим любимым делом, значит, он приспособился избегать нарываться на прямой бан.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

На данный момент есть основания для его забана?

У меня - нет.

Если есть, то почему он не забанен?

Для удобства тех, у кого нет проблем использовать игнор.

tailgunner ★★★★★
()
Ответ на: комментарий от Virtuos86

Если нет, при том, что он вовсю занимается своим любимым делом, значит, он приспособился избегать нарываться на прямой бан.

Он научился косить под мегапрофи с ахриненным бэкграундом. Свежий пример: Не компилиться llvm (комментарий)

Лично меня ллвм не устраивает - он слишком слаб для моих задач.

Это Царь-Балабол мощно задвинул, прям внушаить. Какой-нибудь новичок в программировании, который только пришел на LOR, может и поверить.

eao197 ★★★★★
()
Ответ на: комментарий от tailgunner

Не знаю, мне сложно сравнивать. Но я о другом: если раньше Царь-Балабол врывался в темы с криками «лсные», «лалки» и «выходи все на чесТный бой с Царем», то сейчас он начал строчить на первый взгляд связные тексты.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

раньше Царь-Балабол врывался в темы с криками «лсные», «лалки» и «выходи все на чесТный бой с Царем»

А сейчас он тешит свое самолюбие фразами вроде «LLVM слишком слаб для моих задач» - какие трудные задачи у него есть...

сейчас он начал строчить на первый взгляд связные тексты.

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

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

По-моему, первые 4 абзаца - банальности, дальше - неразборчивая муть.

По большому счету — там все муть. Но для людей, которые не сталкивались никогда с C++ными internal DSL-ями и деталями их реализации этот поток текста может казаться осмысленным.

eao197 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.