Проверяемый текст
Николаев, Алексей Витальевич. Теоретические основы применения грамматических сетей для распознавания и обработки разнородных сложноструктурированных данных и знаний в распределенных системах управления (Диссертация 2006)
[стр. 108]

108 избежания перемещения указателей объектов используется ключевое слово __pin для объявления экземпляров класса.
После сборки проекта из lua-кода становится доступным глобальный класс dEngine и функции dot и другие.
То есть можно вызвать конструктор и обращаться к полученной переменной как к классу.

Из основных возможностей luabind следует отметить • перегрузка free функций • C++ классы в lua
о перегрузка member функций о operators о properties о enums • lua функции в C++ • lua классы в C++ • lua классы (одинарное наследование) о происхождение от lua или C++ классов о переопределение виртуальных функций C++ классов • неявный вызов между регистрированными типами • контроль возвращаемых значений и параметров функций Полная ОП МГ, записанная в EBNF, выглядит следующим образом : chunk —> { stat [ 4] } block —> chunk stat —> varlistl ‘=’ explistl functioncall do block end while exp do block end repeat block until exp if exp then block { elseif exp then block } [ else block ] end return [ explistl ]
[стр. 271]

271 Как видно из вышеперечисленных возможностей, IDE полностью отвечает v современным достижениям в области разработки инструментальных средств программирования и обладает необходимой функциональностью для 9 эффективной работы пользователя СПО.
6.1.5.
Механизм скриптового языка lua Язык lua является одним из самых удобных и гибких современных скриптовых языков.
Несмотря на существование других языков, таких как Ruby и Icon, выбор был сделан именно в пользу lua по следующим причинам : 1.
Широкое распространение и, как следствие, хорошая отлаженность программного кода, высокая надежность, проверенная на представительном множестве проектов.
9 2.
Высокое быстродействие, небольшие системные требования, легкость интеграции, поддержка объектно-ориентированного программирования с помощью расширения Luabind.
3.
Наличие открытого исходного кода.
На lua можно создавать сложный код как программистам, так и специалистам, не обладающим глубокими знаниями в программировании.
С помощью luabind происходит «связывание» кода lua с C# и C++ кодом.
Так как luabind является неуправляемым участком кода (в будущем 9 планируется перенести lua и luabind на управляемый код), при реализации взаимодействия задействован дополнительный класс-менеджер.
Также для избежания перемещения указателей объектов используется ключевое слово __pin для объявления экземпляров класса.
После сборки проекта из lua-кода становится доступным глобальный класс dEngine и функции dot и другие.
То есть можно вызвать конструктор и обращаться к полученной переменной как к классу.

Ф Из основных возможностей luabind следует отметить • перегрузка free функций * • C++ классы в lua

[стр.,272]

272 о перегрузка member функций о operators о properties о enums • lua функции в C++ • lua классы в C++ • lua классы (одинарное наследование) о происхождение от lua или C++ классов о переопределение виртуальных функций C++классов • неявный вызов между регистрированными типами • контроль возвращаемых значений и параметров функций Полная грамматика, записанная в EBNF, выглядит следующим образом chunk —> {stat [';’]} block chunk stat -> varlist 1 explist! functioncall do block end while exp do block end repeat block until exp I if exp then block {elseif exp then block} [ else block ] end return [ explistl ] I break j for Name exp exp [ exp ] do block end for Name {Name} in explistl do block end j function funcname funcbody j local function Name funcbody local namelist [ init ] funcname —» Name {Name} [ Name ] varlistl —> var {var} var -+ Name prefixexp '[’ exp ']’ prefixexp Name namelist -» Name {Name} init -+ '=' explistl explistl -> {exp } exp exp —> nil false true Number Literal function prefixexp tableconstructor exp binop exp unop exp prefixexp -> var functioncall '(’ exp ')’ functioncall —► prefixexp args prefixexp Name args args —► ‘(’ [ explistl ]')’ tableconstructor Literal function —> function funcbody funcbody —► *(’ [ parlistl ] ’)’ block end parlistl -> Name {Name} [] tableconstructor —»'{’ [ fieldlist ] *}’ fieldlist -+ field {fieldsep field } [ fieldsep ] field -+'(’ exp ‘j’ exp name exp exp fieldsep -»

[Back]