В соответствии с какой парадигмой программирования можно использовать Lua? - PullRequest
2 голосов
/ 31 октября 2011

Я провел некоторое исследование о программировании на Lua, но я все еще не уверен, с какой парадигмой он может работать.

В некоторых пошаговых руководствах я обнаружил, что Lua не предназначен для объектно-ориентированного программирования.Но они - другие люди, которые говорят, что это может также работать на ООП.Итак, я смотрю, в каких парадигмах программирования это может работать лучше всего.

Ответы [ 2 ]

9 голосов
/ 31 октября 2011

Lua - это язык программирования "делай, что хочешь". Это не выбирает парадигмы; это пакет полезных функций, которые дают вам свободу использовать любую парадигму, которая вам нужна. Он не имеет функциональных языковых функций, но он имеет функции в качестве первоклассных объектов и правильной лексической области видимости. Так что вы можете использовать его функционально, если хотите. У него нет «классов» или других подобных прототипов, но есть способы инкапсуляции данных и специальный синтаксис для вызова функции с объектом «this». Таким образом, вы можете использовать его для создания объектов.

Луа не диктует, что ты с ним делаешь; это зависит от вас. Он предоставляет низкоуровневые инструменты, которые позволяют вам легко построить любую парадигму, какую вы пожелаете.

5 голосов
/ 01 ноября 2011

Lua - императивный язык ; поэтому он не идеален для функционального программирования .

Сам по себе Lua - процедурный язык . Однако, учитывая простоту его структур данных (у них только одна: таблица), очень легко добавить «слой» поверх него и сделать его объектно-ориентированным языком . Самое основное правило наследования может быть достигнуто всего за 10 строк кода. Есть несколько библиотек, которые предоставляют более утонченный опыт. Моя библиотека, промежуточный класс , в общей сложности составляет 140 LOC.

Еще один замечательный способ использования Lua - это язык сценариев . Он маленький, быстрый, использует только стандартные вещи C, а его стандартная библиотека - крошечная. С другой стороны, он не поставляется с «батарейками в комплекте», как Java.

Наконец, я считаю его очень полезным в качестве языка записи данных; Вы можете выразить необработанные данные в формате, очень похожем на JSON .

В общем, я думаю, что Луа чувствует себя очень близко к javascript.

...