Выбор типа пользовательского языка
Я думаю о небольшом языке специально для графов, которые предоставили бы множество функций для манипулирования графами и тому подобным.
Поэтому, когда я размышлял над синтаксисом языка, я читал о функциональной и "очевидной" императивной парадигме. Как решить, какой стиль языка будет лучше? Какой из них лучше подходит моему варианту использования? Я был бы признателен за ответы с некоторыми вескими причинами и объяснениями.
РЕДАКТИРОВАТЬ: Что касается аудитории для этого языка: я полагаю, что не программисты / исследователи, которые не имеют никакого предшествующего опыта программирования, все равно смогут использовать графики, выиграют от этого.
РЕДАКТИРОВАТЬ: Если вы считаете, что этот вопрос не является полезным, вы можете проголосовать за него, но, пожалуйста, добавьте комментарий о том, почему вы считаете, что он заслуживает этого. Это может помочь мне пройти долгий путь.
2 ответа
Не совсем ответ на большинство ваших вопросов, но я разработал несколько игрушечных языков (и подумал о некоторых не игрушечных). Я нахожу полезным подумать о том, что я собираюсь сделать на языке, а затем попытаться написать несколько примеров программ перед тем, как приступить к его разработке, чтобы увидеть, как получаются концепции.
Может быть трудно не оказаться втянутым в посторонние детали, такие как то, что нужно заключить в скобки, как именно вы указываете структуру, как вы объявляете переменные и типы (если вы это делаете) и т. Д. И т. Д. На данном этапе вам не очень интересен синтаксис (что немного странно, когда вы пишете пример программы), так что это ближе к псевдокоду. Но это может помочь закрепить, какие примитивы вам нужны, о каких концепциях будут думать пользователи вашего языка.
Если вы все еще взвешиваете фундаментальные решения, такие как императив или функциональность, попробуйте сделать это несколькими различными способами. Например, какие строительные блоки должен был бы предоставить ваш язык для написания преобразований графа в императивном стиле? Как насчет функционального стиля? Это поможет вам понять, что хорошо работает в каждом подходе, какие проблемы нужно решить для каждого подхода и так далее.
IMO, когда вы пытаетесь создать какой-то простой язык, у вас обычно есть идея, кто будет его использовать и что он будет делать. Затем попробуйте сначала "использовать его", подумайте, как должно выглядеть письмо в нем. Не думайте о парадигмах и тому подобном - это то, о чем вы начинаете беспокоиться, когда ваш язык расширяется, - но, возможно, это не так:) Это может закончиться простой интерактивной оболочкой с базовым математическим синтаксисом.