Надеюсь, этот вопрос не будет слишком запутанным или расплывчатым. Я знаю, чего хочу в своей голове, поэтому скрестив пальцы, я могу передать это в тексте.
Я ищу язык с синтаксисом моей собственной спецификации, поэтому предполагаю, что мне нужно будет создать его сам. Я провел последние несколько дней, читая о компиляторах, лексерах, парсерах, языке ассемблера, виртуальных машинах и т.д., и я изо всех сил пытаюсь разобраться во всем с точки зрения того, что мне нужно для достижения моих целей (файл, прикрепленный внизу с некоторые характеристики). По сути, я до смерти не понимаю, какие именно инструменты мне понадобятся, чтобы двигаться дальше.
Немного предыстории: мы надеемся, что созданный язык будет использоваться для реализации многопользовательского текстового сервера MUD. Следовательно, ему нужны простые встроенные функции для создания / поддержки клиентских TCP / IP-соединений, неблокирующего ввода-вывода, доступа к базе данных через SQL или аналогичного. Меня также интересует безопасность, поскольку я не хочу, чтобы код, написанный для этого языка, можно было украсть и использовать широкой публикой без специального программного обеспечения. Вероятно, это означает, что он должен компилироваться в объектный код.
Итак, каковы мои лучшие варианты создания языка, который соответствует этим спецификациям
Мои выводы ниже. Это всего лишь мое лучшее обоснованное предположение, поэтому, пожалуйста, оспорите меня, если вы думаете, что я иду в неправильном направлении. В основном я включаю это только для того, чтобы увидеть, насколько я сбит с толку, когда эксперты приходят с комментариями.
Для безопасности кода мне нужен язык, который компилируется и запускается на виртуальной машине. Если я сделаю это, у меня будет чертовски много работы, не так ли? Написать виртуальную машину, язык ассемблера на нижнем уровне, а затем на более высоком уровне, библиотеки кода для работы с вводом-выводом, сокетами и т. Д., Вместо использования существующих модулей?
Я просто сбита с толку.
Я не уверен, что понимаю.
Если бы кто-нибудь мог хоть немного успокоить мой мозг, я был бы искренне признателен! В качестве альтернативы, если я сбился с курса и есть более простой способ сделать это, дайте мне знать!