Ill параметры среды выполнения, как количество используемой памяти, позволяет интерактивно управлять сборкой мусора в lua. Планируется реализация ассемблера и дизассемблера для возможности написания «критичных» участков кода в более высокопроизводительной форме, а также для более тонкой отладки приложений lua. 4.2.6. Синтаксический механизм СПО После добавления ОП МГ в проект имеется возможность работать с ней, применять к ней функции и использовать в том числе для генерации и синтаксического анализа. Для демонстрации на рис.4.2.9 представлена программа С А, написанная на С#. В левом окне показан стек разбора, его состояние, события и значения. В правом окне представлен исходный файл, грамматика из ОП МГ и дерево разбора. Также можно задать точку остановки в исходном файле, а когда парсер достигнет этого места, выполнение разбора приостановится. Г~Га рИС< 4.2.10 представлено соответствующее дерево разбора. 4.2.7. Механизм моделирования в СПО В СПО существует система моделирования работы различных абстрактных устройств, таких как конечный автомат, синтаксический анализатор и генератор и другие. В СПО реализован принцип, согласно которому все, что можно сделать с помощью программ lua, можно сделать и с помощью моделирования. Основная составная часть программы моделирования (рис.4.2.11) это модифицированная библиотека NAF позволяющая всесторонне работать с графическими примитивами, придавая программе гибкость для создания логических, функциональных связей. Библиотека все о рисунке и модифицировании рисунков в функции пользовательского взаимодействия. Когда пользователь перемещает узел, то |
274 Использование интерпретатора позволяет безопасно для остального СПО запускать и выполнять программы, написанные на lua, то есть в случае отказа программы из-за ошибки СПО продолжит свое функционирование. Ф Для работы с lua в СПО реализован интерактивный отладчик, который позволяет выполнять lua-программы, останавливать выполнение по условию, по точке остановки, просматривать переменные lua, контролировать такие параметры среды выполнения, как количество используемой памяти, позволяет интерактивно управлять сборкой мусора в lua. Планируется реализация ассемблера и дизассемблера для возможности написания «критичных» участков кода в более высокопроизводительной форме, а также для более тонкой отладки приложений lua. ф 6.1.6. Синтаксический механизм СПО После добавления ГС в проект имеется возможность работать с ней, применять к ней функции и использовать в том числе для синтаксического анализа. Для демонстрации на рис.6.1.9 представлена программа СА, написанная на С#. В левом окне показан стек разбора, его состояние, события и значения. В правом окне представлен исходный файл, грамматика и дерево разбора. Также Ф можно задать точку остановки в исходном файле, а когда парсер достигнет этого места, выполнение разбора приостановится. На рис. 6.1.10 представлено соответствующее дерево разбора. 6.1.7. Механизм моделирования в СПО В СПО существует система моделирования работы различных абстрактных Ф устройств, таких как конечный автомат, синтаксический анализатор и j, генератор и другие. В СПО реализован принцип, согласно которому все, что 275 можно сделать с помощью программ lua, можно сделать и с помощью моделирования. t using System; Parse gtadc Step: 14460 Ф constructor body using System.Collections; SPACE-space, symbol ФЫоА-Ч.Г «MATCHCASEXIDELJTERALSXIDERE й O class.member.declaration class VordCountNoStorage *. HordCount A Parse Tree .•• • * methodjdedaration { £ «conjunction? «С method.header public HordCountNoStorage(stri I «disjunction? S Ф method .modifiers { О name sp ace. mem be i_ declarations Ф method .modifier "public ) ( i (namespace.member.declaration) ■return Jtype <■ namespace.member.declaration Ф type public TimeSpan DoCount{) i «dwjunction? “6 value.type ► 0 type.declaralion £ struct .type string line * null; & «conjunction? Ф type.name Hashtable wordTable • ne ■ «disjunction? ~ О namespao DateTlme startTime Dat class.declarat ion О cs.ide int wordCount 0; S «conjunction? й member .name while ((line stream.Re О class.body О qualified.identifier { S «conjunction? CS.ident . "DoCount" j foreach (string wo I «diejunction? Ф method.body < О class.membei.declar ations p ► jjordCount++; <) (ctass.membet.declar ation} class, member, declaration .................................... //Console,¥r & 6.9. Разбор файла C# Основная составная часть программы моделирования (рис.6.11) это модифицированная библиотека NAF , позволяющая всесторонне работать с графическими примитивами, придавая программе гибкость для создания логических, функциональных связей. Библиотека все о рисунке и модифицировании рисунков в функции пользовательского взаимодействия. Когда пользователь перемещает узел, то узел в действительности не перемещается, но повторно оттягивается и дает иллюзию того, что он перемещен, подобно мультипликациям, дающим иллюзию непрерывности и движения. Однако, различие с мультипликацией состоит в том, что анимация не является прогнозирующей, а зависит от |