The OpenNET Project / Index page

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

Релиз языка программирования Lua 5.2

19.12.2011 19:08

После почти шести лет разработки доступен релиз Lua 5.2, быстрого и компактного скриптового языка программирования, получившего большое распространения в роли встраиваемого в других проекты языка сценариев (например, для определения конфигурации или для написания расширений). Lua комбинирует простой процедурный синтаксис с мощными возможностями описания данных через использование ассоциативных массивов и расширяемой семантики языка. В Lua используется динамическая типизация, языковые конструкции преобразуются в байткод, который выполняется поверх регистровой виртуальной машины c автоматическим сборщиком мусора. Сам интерпретатор оформлен в виде библиотеки, легко интегрируемой в проекты на языках Си и Си++. Код интерпретатора Lua написан на языке Си и распространяется под лицензией MIT.

Среди ключевых новшеств Lua 5.2 отмечается поддержка изменяемых pcall и мета-методов, новая схема определения глобальных переменных, поддержка эфемерных таблиц (ephemeron tables), новая библиотека для битовых операций, поддержка легковесных функций на Си, реализация неотложного сборщика мусора, поддержка оператора goto, поддержка финализаторов для таблиц. Дополнительно отмечается наличие ряда несовместимых изменений в языке, изменение API и проведение чистки устаревших функций в стандартных библиотеках.

  1. Главная ссылка к новости (http://lua-list.2524044.n2.nab...)
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/32603-lua
Ключевые слова: lua
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (57) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, loglog (?), 21:57, 19/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –13 +/
    Ну и чем это отличается от java?
     
     
  • 2.5, Df232z (?), 22:08, 19/12/2011 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Не жрет память и не тормозит.
     
     
  • 3.20, anonimous (?), 08:50, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    $ l /usr/lib/liblua.so.5.1.4
    -rwxr-xr-x 1 root root 210231 Oct 29  2010 /usr/lib/liblua.so.5.1.4
     
  • 3.23, J (??), 10:26, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • –9 +/
    > Не жрет память и не тормозит.

    Хорош уже самому тормозить, в 1997 году появился JIT, сейчас виртуальная машина Java реализована аппаратно в процессорах. АППАРАТНО В CPU! Не доходит?

     
     
  • 4.26, x0r (??), 11:05, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    это в каких? в ix86, x86_64, КР580?
     
     
  • 5.27, 1 (??), 11:21, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    в сим-картах например
     
  • 5.58, J (??), 17:36, 21/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В армах! Во всех современных смартфонах.
     
  • 5.59, J (??), 17:38, 21/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > это в каких? в ix86, x86_64, КР580?

    И что такое ix86? и x86_64? и при чем тут серия КР580 (x86 архитектура).

     
     
  • 6.61, Ваня (?), 17:44, 21/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ix86 = Intel 386 или старше - 32-разрядный процессор настольных ПК
    x86_64 = AMD64 или Intel EM64T - 64-разрядный --"--
     
     
  • 7.62, J (??), 20:04, 21/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >ix86 = Intel 386 или старше - 32-разрядный процессор настольных ПК

    Первое называется x86 и ведет свою родословную от 8086

    >x86_64 = AMD64 или Intel EM64T - 64-разрядный --"--

    Второе называется amd64 не путать c ia64, т.к. архитектура разная, хотя обе имеют эмуляцию x86, впрочем как и arm.  

    В общем я вижу "знатоки" собрались.

     
     
  • 8.63, Ваня (?), 11:45, 22/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Называется КЕМ x86 i386 32-битный процессор 32-разрядный процессор ix86... текст свёрнут, показать
     
     
  • 9.64, Michael Shigorin (ok), 22:07, 22/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Хотел сообщить, что знатоков не зря в кавычки забрали и что говорите про IA32... текст свёрнут, показать
     
     
  • 10.67, Ваня (?), 14:28, 23/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вам ли не знать что существуют версии документов Тот же Intel не сразу пришёл... текст свёрнут, показать
     
  • 4.29, Аноним (-), 11:31, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Стековые машины медлительны вне зависимости от того, виртуальные они или аппаратные.
     
  • 4.34, Аноним (-), 12:20, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не хотел бы я пользоваться такими CPU.
    JVM уже стало синонимом дырявости, уступая в этом только Adobe flash.
    Из недавних новостей:
    http://www.opennet.ru/opennews/art.shtml?num=32541
    > Обновление Java SE 6 Update 30 и Java SE 7 Update 2

    В новой версии отмечено около 680 исправлений.

     
  • 3.47, Аноним (-), 16:12, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если вы пишите небольшие скрипты и прочие хелловорлды - то да.
     
  • 2.6, Аноним (-), 22:16, 19/12/2011 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Ну и чем это отличается от java?

    Шустрой регистровой виртуальной машиной вместо тормознутой стековой, как у жабы, к примеру. И функциональным программированием вместо обьектно-ориентированного. И ориентированностью в первую очередь на встраивание в другие программы в качестве скриптов, а не на "энтерпрайз". Или ада-подобным синтаксисом вместо си-подобного. И  нестрогой динамической типизацией вместо [почти] строгой статической. И вообще всем.
    Ах да, и еще там массивы начинают отсчет с единицы, а не с нуля. Предмет более девяти тысяч холиваров.

     
     
  • 3.11, Аноним (-), 23:15, 19/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Или ада-подобным синтаксисом вместо си-подобного

    Паскалеподобным, я бы сказал, но, тем не менее, довольно лаконичным. Имхо, с Адой не сравнишь, у нее синтаксис слишком монструозен

     
  • 3.32, Michael Shigorin (ok), 12:03, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Lua комбинирует простой процедурный синтаксис

    vs
    > И функциональным программированием

    Объясните недобравшемуся -- так всё-таки процедурный или функциональным?

     
     
  • 4.38, Аноним (-), 12:53, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Стиль преобладает процедурный, но



    f = function(a,b) -- функции — такие же переменные, как и всё остальное
      c = a + b -- есть замыкания
      return function(d) -- могут возвращать функции
        return d(a,b,с) -- …и принимать их в качестве аргумента
      end
    end



    как бы намекает.
     
  • 4.45, anonymous (??), 15:41, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://ru.wikipedia.org/wiki/Мультипарадигмальный_язык_программирования
     
     
  • 5.46, Michael Shigorin (ok), 16:07, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > http://ru.wikipedia.org/wiki/Мультипарадигмальный_язык_программирования

    Да на ruby-то не первый год блоками кидаюсь, что не делает язык функциональным.

     
  • 2.12, Ytch (?), 01:26, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дано: скромная embedded система. Платформа 32-х разрядная, но не ARM и не x86. ОЗУ 32 Мб. Нужно немного скриптования. Выполнение скриптов задача хоть и нужная, но второстепенная и низкоприоритетная (в плане потребления ОЗУ и CPU).

    > Ну и чем это отличается от java?

    Тем что вышеуказанное можно без особых проблем реализовать (да, собственно, уже реализовано) при помощи Lua или Squirrel, при помощи java - нет.

     
     
  • 3.13, ffirefox (?), 02:41, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Дано: скромная embedded система. Платформа 32-х разрядная, но не ARM и не x86. ОЗУ 32 Мб. Нужно немного скриптования

    Forth  в руки и вперед.

     
     
  • 4.15, Аноним (-), 03:42, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну перепиши вебморду LuCI на forth, будет забавно посмотреть на это :)
     
     
  • 5.24, f (??), 10:27, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А чего сложного то?
     
     
  • 6.35, Аноним (-), 12:23, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А чего сложного то?

    Да, действительно.
    Вот я начал переписывать...
    переписываю...
    переписываю...
    переписываю...
    переписал!
    И совсем не сложно.

     
     
  • 7.51, ffirefox (?), 22:33, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Реплику не понял.
    В чем вы сомневаетесь?
    Управление настройками роутера эта такая архисложная задача?
     
     
  • 8.65, Michael Shigorin (ok), 22:14, 22/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Достаточно -- писавший морды... текст свёрнут, показать
     
  • 8.66, arisu (ok), 13:32, 23/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    напиши хотя бы один раз реализацию этой задачи потом поговорим ... текст свёрнут, показать
     
  • 4.56, Ytch (?), 17:20, 21/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Forth  в руки и вперед.

    Только если уж очень "прижмет". Уж больно мне и остальной команде синтаксис не нравится.

     
  • 3.14, Андрей (??), 03:16, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В инете встречаются железные JVM для ПЛИС. Луа тоже есть? (сам ещё не искал)
     
     
  • 4.16, Аноним (-), 03:43, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > В инете встречаются железные JVM для ПЛИС.

    1) ПЛИС очень нишевые штуки.
    2) От Java в системном программировании много гемора неизвестно ради чего.
    3) Она там урезаная по максимуму.

     
     
  • 5.21, J (??), 10:23, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >1) ПЛИС очень нишевые штуки.

    ПЛИС есть в любой промышленной железке страдающей наличием хоть какого-нибудь интеллекта.

    >2) От Java в системном программировании много гемора неизвестно ради чего.

    Как раз гемора то и нет. А в тех же ARM так вообще аппаратная поддержка Java.

    >3) Она там урезаная по максимуму.

    Аппаратная Java? Ну а какая она там должна быть?

     
     
  • 6.37, Аноним (-), 12:32, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > ПЛИС есть в любой промышленной железке страдающей наличием хоть какого-нибудь интеллекта.

    И во всех java? Кто то вас обманул.
    >>2) От Java в системном программировании много гемора неизвестно ради чего.
    > Как раз гемора то и нет.

    Вступление в системное программирование на java
    "... прежде всего надо избегать создания объектов, так не предусмотренный запуск сборщика мусора с остановкой программы, может привести к непредсказуемым последствиям"
    "... так же стоит избегать вызова библиотечных функций неявно создающих копии объектов по вышеописанным причинам. Примером такой функции является .sort()..."--
    системный язык такой системный.
    > А в тех же ARM так
    > вообще аппаратная поддержка Java.

    Да Андроид и java ME на ARMе знамениты свей скоростью.

     
     
  • 7.40, Michael Shigorin (ok), 13:07, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вступление в системное программирование на java
    > "... прежде всего надо избегать создания объектов, так не предусмотренный запуск
    > сборщика мусора с остановкой программы, может привести к непредсказуемым последствиям"

    Хорошо хоть пишут... если б ещё читали и не бывало http://www.opennet.ru/openforum/vsluhforumID3/70660.html#46 :(

     
  • 7.60, J (??), 17:44, 21/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> ПЛИС есть в любой промышленной железке страдающей наличием хоть какого-нибудь интеллекта.
    > И во всех java? Кто то вас обманул.

    Не во всех. Не нужно утрировать.

    >>>2) От Java в системном программировании много гемора неизвестно ради чего.
    >> Как раз гемора то и нет.
    > Вступление в системное программирование на java
    > "... прежде всего надо избегать создания объектов, так не предусмотренный запуск сборщика
    > мусора с остановкой программы, может привести к непредсказуемым последствиям"
    > "... так же стоит избегать вызова библиотечных функций неявно создающих копии объектов
    > по вышеописанным причинам. Примером такой функции является .sort()..."--
    > системный язык такой системный.

    Еще бы ссылочку в "системное программирование на java" , а то просто текст не имеющий отношения к системному программированию и вырванный и контекста. Ложь.

    >> А в тех же ARM так
    >> вообще аппаратная поддержка Java.
    > Да Андроид и java ME на ARMе знамениты свей скоростью.

    Удивлю? На армах вообще все современные сматрфоны.


     
  • 4.22, Анонимуз (?), 10:23, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Дамаю шансы найти железную реализацию Lua такие же как у JavaScript. Т.е. около 0.
     
     
  • 5.25, Анонимуз (?), 10:48, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    С другой стороны, если ну очень хочется, от есть Luaj.
     
  • 3.48, woolfy (?), 17:21, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Дано: скромная embedded система. Платформа 32-х разрядная, но не ARM и не
    > x86. ОЗУ 32 Мб. Нужно немного скриптования. Выполнение скриптов задача хоть
    > и нужная, но второстепенная и низкоприоритетная (в плане потребления ОЗУ и
    > CPU).

    Вы про Playstation 2?

     
     
  • 4.57, Ytch (?), 17:22, 21/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Дано: скромная embedded система. Платформа 32-х разрядная, но не ARM и не
    >> x86. ОЗУ 32 Мб. Нужно немного скриптования. Выполнение скриптов задача хоть
    >> и нужная, но второстепенная и низкоприоритетная (в плане потребления ОЗУ и
    >> CPU).
    > Вы про Playstation 2?

    Нет. Про некоторые свои разработки.

     

  • 1.3, СуперАноним (?), 22:04, 19/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >поддержка оператора goto

    Очень "ценная" фишка, актуальная так в 21 веке.

     
     
  • 2.10, nameeman (?), 23:13, 19/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    в системном программировании актуальная фишка, на ЛОРе пообсуждали
     
     
  • 3.17, Аноним (-), 03:43, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > в системном программировании актуальная фишка, на ЛОРе пообсуждали

    Правда луа на системный ЯП никак не тянет. Скриптоязык он и есть скриптоязык.

     
     
  • 4.18, Аноним (-), 05:09, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы просто не знаете как скриптовые языки используются в системном программировании.
    И вообще путаете задачи системного программирования с архитектурой и парадигмами применяемого для решения задач языка.
     
  • 2.19, жабабыдлокодер (ok), 08:36, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В определенных случаях оператор goto может упростить логику программы и сделать ее более понятной. И в 20 веке, и в 21 веке.
     
     
  • 3.31, Ваня (?), 11:55, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > В определенных случаях оператор goto может упростить логику программы и сделать ее
    > более понятной. И в 20 веке, и в 21 веке.

    Да, да. Исследования 80-х показали что половина всех ошибок приходилась на goto. Добавление continue и break позволяет отказаться от него напрочь, за исключением ситуации выхода из глубоких циклов. После чего оператор goto нерекомендуется к использованию, ну кроме асма :).

    while(A)
    {
      ...
      while(B)
      {
        ...
        while(C)
        {
          ...
          goto skip
          ...
        }
        ...
      }
      ...
    }
    skip:

     
     
  • 4.33, Michael Shigorin (ok), 12:16, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > за исключением ситуации выхода из глубоких циклов

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

     
     
  • 5.36, Ваня (?), 12:24, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Для этого рекомендуют блок try-catch-throw.

    try
    {
      ...
      if(непонятно что творится)throw 1;
      ...
    }
    catch(int a)
    {
      // сюда попадает если выполнился оператор throw
      // или предыдущий код сгенерировал любую ошибку (деление на 0, обращение в NULL, ..)

      if(a==1){...}
      ...
    }

     
     
  • 6.39, Michael Shigorin (ok), 13:00, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Для этого рекомендуют блок try-catch-throw.

    Это если он есть ;-)

     
  • 6.49, arisu (ok), 17:44, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Для этого рекомендуют блок try-catch-throw.

    особенно в pure C, ага.

     
  • 4.44, Аноним (-), 14:05, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Исследования 80-х показали что половина всех ошибок приходилась на goto.

    Исследования начала 21-го века показали, что 100% ошибок в программах приходятся на программистов.

     
  • 3.42, Sokoloff (?), 13:29, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Еще для конечных автоматов может быть полезен, при аккуратном использовании.
     
  • 2.50, arisu (ok), 17:45, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>поддержка оператора goto
    > Очень "ценная" фишка, актуальная так в 21 веке.

    ценная. и актуальная.

     

  • 1.7, Xasd (ok), 22:29, 19/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Реализация *интерпретатора* языка программирования?
     
     
  • 2.8, Аноним (-), 22:30, 19/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    не только, там сам язык заметно поменялся.
     
  • 2.9, Аноним (-), 22:37, 19/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Реализация *интерпретатора* языка программирования?

    Тогда уж и парсера тоже. Чего мелочиться-то?

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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