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