Часть моей работы - поддержка проприетарного языка сценариев игры. Я не знаю ни одной книги с практическими рекомендациями по этой теме в ее узком смысле. Есть интересная статья Брюса Уилкокса о написании таких языков. Он не обсуждает детали реализации, но несколько углубляется в процесс проектирования.
http://www.gamasutra.com/view/feature/1570/reflections_on_building_three_.php
Написание скриптового языка похоже на написание любого языка и включает в себя все те же принципы и вопросы дизайна. Вам нужно подумать о том, вокруг каких понятий должен вращаться ваш язык, вам нужно определить грамматику, а затем написать компилятор или переводчик и / или интерпретатор. То, что вы выберете, и подробности их реализации полностью зависит от вас, и нет единого или лучшего способа сделать это.
Существуют стандартные способы мышления, когда дело доходит до синтаксического анализа и определения языковых грамматик. Регулярные выражения ваш друг здесь. К счастью, C ++ 11 включает в себя библиотеку <regex>
(изначально из boost). Это может помочь подобрать книгу о компиляторах, чтобы вы начали изучать важные концепции, если вы действительно хотите углубиться в предмет. Когда я учился на курсах по компиляции в университете, это был мой учебник, который я хранил у себя до сих пор, поэтому я рекомендую его.
http://www.amazon.com/Compilers-Principles-Techniques-Alfred-Aho/dp/0201100886/ref=sr_1_2?ie=UTF8&qid=1326618572&sr=8-2
Написание языка - замечательное упражнение в информатике. Однако, если это для реального проекта или продукта, то, как и другие, кто уже прокомментировал, мой профессиональный совет: не делайте этого, если вам действительно не нужно. Это огромные потенциальные затраты времени, которые вы рассматриваете, и у вас есть вопрос: какие преимущества я получу от своего собственного языка, которого я не могу найти в существующих бесплатных языках, таких как Lua и Python, и стоят ли эти преимущества месяцы дополнительного времени, которое потребуется для реализации?
И не забывайте инструменты. Если вы пишете язык, который вы намерены использовать другими, вам нужно много документации и инструментов, инструментов, инструментов. Вы почти наверняка захотите отладчик исходного уровня по крайней мере, и написание хорошего отладчика может занять столько же времени, сколько и сам язык!
Если все, что вам нужно, это язык для быстрой разработки прототипов игровой логики, то Lua, вероятно, более чем подходит для ваших нужд и поставляется с большим количеством существующей документации, литературы и инструментов.