Создание языка на Рубиниус В.М. - PullRequest
3 голосов
/ 04 сентября 2011

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

Ответы [ 2 ]

4 голосов
/ 17 сентября 2011

Эй, я пишу на языке Fancy, который работает на Rubinius.Если вы заинтересованы в разборе, взгляните на загрузочный / rbx-компилятор, там вы найдете Parser (реализованный с KPEG), который в основном создает дерево узлов AST, каждый из этих узлов имеет метод байт-кода, который создает rubinius vmинструкция для всего, чтобы работать.У Fancy много общего с семантикой ruby, поэтому, думаю, начать с нее будет легко, если вы уже знакомы с ruby.Вам просто нужно проверить примеры / dir, чтобы получить представление о языке, а затем анализатор kpeg, узлы ast, загрузчик, когда вы будете изучать компилятор.В наши дни Fancy загружается (это означает, что компилятор был написан в самом fancy - в lib / compiler), но rbx-compiler является первым шагом в этом процессе.

Надеюсь, что изучение исходного кода Fancy может помочь вам.

0 голосов
/ 03 февраля 2013

Если вы этого не видели, ознакомьтесь с заметкой Эвана от 2011 г. LA Ruby Conf . Он показывает, как создать простой язык, который может быть полезен.

...