The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Встраивание Lua скриптов в приложения на языке Си

24.04.2009 11:08

Lua - небольшой скриптовой язык программирования, специально разработанный для встраивания в другие программы. Прикладной программный интерфейс Lua для C позволяет создавать очень простой и понятный код как для вызова Lua из C, так и для вызова C из Lua. Это позволяет разработчикам, которым нужен удобный скриптовой язык, действующий во время выполнения, просто реализовывать необходимые для языка основные элементы программного интерфейса, после чего вызывать из своих приложений код на Lua. В статье Lua рассматривается как средство упрощения распространенных задач разработки, а также обсуждаются некоторые причины для встраивания скриптового языка на начальном этапе работы.

  1. Главная ссылка к новости (http://www.ibm.com/developerwo...)
Автор новости: IBM dW
Тип: яз. русский / Практикум
Ключевые слова: gcc, lua, script
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (8) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, metallic (?), 15:13, 24/04/2009 [ответить]  
  • +/
    Мы его в разработке игр используем, уровни скриптуем и тд
     
     
  • 2.7, anonimous (?), 23:35, 26/04/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Мы его в разработке игр используем, уровни скриптуем и тд

    С некоторым удивлением обнаружил его в скриптовании Double Commander (http://doublecmd.sourceforge.net)

    http://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?az=printer_format&om=5

    С удивлением поскольку казалось бы для проги на Паскале так и просится встроить Pascal Script

    Pascal Script 3 is free and comes with full source code.
    You can also access the latest version of PS directly in the SVN version control system, at svn://svn.remobjects.com/pascalscript
    One prominent use of Pascal Script is the Open Source InnoSetup project that uses Pascal Script as scripting engine to provide advanced scripting abilities during installation and uninstallation.

    посмотрел пример

    function ContentGetSupportedField(Index)
      if (first) then
        first=false;
        return 'FieldName','', 8; -- FieldName,Units,ft_string
      end  
    end

    Сразу был неприятно поражен бессмысленным изобретательством. Типа -- это комментарий, а // это видимо декремент у них будет. Все таки изобретатели нынешних недоязыков неисправимы.

     

  • 1.2, User294 (ok), 15:55, 24/04/2009 [ответить]  
  • +/
    > Мы его в разработке игр используем, уровни скриптуем и тд

    А ему можно права обкусить, чтобы скрипты уровней и т.п. не могли скажем по ФС у юзера шариться и т.п.?

     
     
  • 2.5, Aleksey (??), 18:38, 24/04/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >> Мы его в разработке игр используем, уровни скриптуем и тд
    >
    >А ему можно права обкусить, чтобы скрипты уровней и т.п. не могли
    >скажем по ФС у юзера шариться и т.п.?

    Там проблема противоположная. Т.е. по умолчанию он вообще ничего не умеет - только считать и (если не выключено) выводить на экран. А дальше все в ваших руках. Вообще Lua - это вещь!

     
     
  • 3.8, User294 (??), 01:03, 27/04/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Там проблема противоположная. Т.е. по умолчанию он вообще ничего не умеет -

    Хм, может тогда пригодится авторам игрухи BfW как скриптовый движок - а то питон их подкачал слабыми песочницами а давать AI-скриптам с ремотного сервера (куда юзеры карты льют) полный доступ к системам других юзеров как-то неправильно и чревато (мало чтоли пудаков которые зальют трояна и мало чтоли бакланов его скачают?) - в итоге питоновый AI в игрухе BfW был закопан for security reasons.

    >только считать и (если не выключено) выводить на экран.

    Вот от AI скриптов в BfW и требуется только считать - может им подойдет? =)

    >А дальше все в ваших руках. Вообще Lua - это вещь!

    Лично мне он не нравится паскакалевской природой, в общем случае си-подобная запись лаконичнее и мне более по душе.Но - вроде используется местами и вроде даже успешно, стало быть право на жизнь имеет.

     
     
  • 4.9, . (?), 06:07, 27/04/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Лично мне он не нравится паскакалевской природой, в общем случае
    >си-подобная запись лаконичнее и мне более по душе

    как бы общепризнано, что паскаль ближе си к естественному языку

     

  • 1.4, аноним (?), 18:20, 24/04/2009 [ответить]  
  • +/
    pike?
     
     
  • 2.6, Aleksey (??), 19:40, 24/04/2009 [^] [^^] [^^^] [ответить]  
  • +/
    pike это полностью обычный язык программирования, а Lua - встраиваемый. Можно из C++ программы вызывать Lua-программу так, чтобы она могла использовать, например, ваши объекты и функции.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру