Базовые понятия об интерпретаторах

Ты - интерпретатор. Неожиданно:) Если тебя когда-нибудь посещала мысль создать свой язык программирования или браузер Интернет, то либо ты уже все знаешь и дальше можешь не читать, либо ты не знаешь как, и читаешь здесь. Самый простой пример из жизни компьютерной - твой любимый браузер. Будь то IE, Opera, FF, Avant, Safari или какой-нибудь другой, не важно. Важен принцип который положен в основу.

А основа здесь - спецификация HTML, которую подробно можно изучить на сайте первоисточника тут. Конечно, со стариком Тимом не поболтать, но на труды посмотреть можешь 24 часа в сутки.

Причем здесь эта спецификация? Легко! Там описано как интерпретировать разметку и конечно поясняются возможные тэги с их параметрами. Например, браузер видит <a href="http://break-people.ru" target="_blank">Сайт</a>. Его действия понятны - он распознает это как ссылку. Причем ссылку на конкретное место, а осуществить переход надо при клике на слово Сайт. Также есть необязательный параметр target. В данном примере он указывает интерпретатору - указанную ссылку открыть в новой вкладке(окне). Переведя всю спецификацию в команды для интерпретатора, ты получишь собственный браузер.

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

К примеру, ты делаешь систему авторизации. Сам механизм проверки подлинности ты прячешь в коде программы, а формирование окна приветствия делается скриптом по-умолчанию(опять же в коде программы), но с возможностью заменить этот скрипт на свой. Удобно. Но о скриптовании это другая опера;)

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

Что мы имеем после изложенного? Давай посчитаем.

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

Писать интерпретатор - занятие интересное и увлекательное так, что если понравился материал - начинай программировать. Кстати, скоро будут материалы(уже выложены) по созданию собственного браузера. Да - с примерами;)




Ссылки:

К содержанию

© Copyright 2004-2017 - CMS Made Simple
Сайт работает на CMS Made Simple version 1.4.1

© Все печеньки Break-people.ru принадлежат авторам проекта.

Яндекс цитирования Рейтинг@Mail.ru Яндекс.Метрика