Пользовательский язык программирования: как?

Надеюсь, этот вопрос не будет слишком запутанным или расплывчатым. Я знаю, что хочу в своей голове, скрестив пальцы, я могу передать это в тексте.

Я ищу язык с синтаксисом моей собственной спецификации, поэтому я предполагаю, что мне нужно будет создать его сам. Я провел последние несколько дней, читая о компиляторах, лексерах, парсерах, языке ассемблера, виртуальных машинах и т.д., и я изо всех сил пытаюсь разобраться во всем с точки зрения того, что мне нужно для достижения моих целей (файл, прикрепленный внизу с некоторые характеристики). По сути, я до смерти не понимаю, какие именно инструменты мне понадобятся для продвижения вперед.

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

Итак, каковы мои лучшие варианты создания языка, который соответствует этим спецификациям

Мои выводы приведены ниже. Это мое лучшее обоснованное предположение, поэтому, пожалуйста, оспорите меня, если вы думаете, что я иду в неправильном направлении. В основном я включаю это только для того, чтобы увидеть, насколько я сбит с толку, когда эксперты приходят с комментариями.

  1. Для безопасности кода мне нужен язык, который компилируется и запускается на виртуальной машине. Если я сделаю это, у меня будет чертовски много работы, не так ли? Напишите виртуальную машину, язык ассемблера на нижнем уровне, а затем на верхнем уровне, библиотеки кода для работы с вводом-выводом, сокетами и т. д., вместо того, чтобы использовать существующие модули?

  2. Я просто запутался.

  3. Я не уверен, что я понимаю.

Если бы кто-нибудь мог решить мой мозг хоть чуть-чуть, я искренне признателен! В качестве альтернативы, если я сбился с курса и есть более простой способ сделать это, дайте мне знать!

9
задан Seki 13 June 2015 в 11:54
поделиться