Skip to content

ste6an/v7lua

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

ВК для интеграции 1С и Lua

ВК позволяет выполнять в среде 1С код, написанный на языке Lua.

Lua считается самым быстрым из интерпретируемых языков программирования. Примитивы, заложенные в язык, позволяют писать в стиле ООП и ФП. Для Lua написано огромное количество библиотек ( http://lua-users.org/wiki/LibrariesAndBindings )

  • По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями, спроектирован с целью «не плодить сущности сверх необходимого». Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы объектно-ориентированного программирования с поддержкой прототипов (включая множественное наследование) легко реализуются с использованием метатаблиц, которые также позволяют перегрузку операций и т. п. Реализуемая модель ООП (как и в JavaScript) — прототипная
  • Как и многие интерпретируемые языки программирования, реализация Lua имеет отдельно компилятор с исходного языка в исполняемый байт-код и виртуальную машину для исполнения сгенерированного байт-кода. Причём байт-код — это не команды стековой машины, а команды некоего виртуального процессора с несколькими регистрами, что повышает эффективность исполнения. В стандартной виртуальной машине Lua используется распределение памяти со сборкой мусора (аналогично Java или .NET). Для задач критичных по времени имеется JIT компилятор Lua LuaJIT.

ВК включает в себя библиотеки LPeg и LuaCOM

ВК Реализует один объект LuaRef. LuaRef инкапсулирует виртуальную машину Lua. Объект не имеет собственных свойств и методов, а предоставляет доступ к глобальным переменным и функциям Lua. Возможна передача агрегатных типов 1с как аргументов для Lua-функций и значений для свойств. Возможен вызов методов и доступ к свойствам агрегатных типов 1с из Lua.

При создании ВМ загружаются все стандартные библиотеки и переопределяются следующие глобальные функции:

  • print - выводит текст в окно сообщений 1С.
  • dofile - работает согласно документации, но переделана для запуска в безопасной среде
  • dostring - выполняет код в переданной строке
  • create1sobject - аналог ф-и СоздатьОбъект встроенного языка 1с

При доступе к свойствам и вызове функций из 1С, выполняются преобразования типов Lua в типы 1С:

  • числа преобразуются в числа
  • строки преобразуются в строки
  • таблицы преобразуются в объекты LuaRef. При этом значения таблиц типа "функция" становятся методами, а все остальные - свойствами.

ВК не требует регистрации в реестре.

About

Automatically exported from code.google.com/p/v7lua

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published