Présentation

Lua est un langage de programmation étendu conçu pour prendre en charge la programmation procédurale générale avec des fonctions de description de données. Il offre également une bonne prise en charge de la programmation orientée objet, de la programmation fonctionnelle et de la programmation axée sur les données. Lua est destiné à être utilisé comme un langage de script puissant et léger pour tout programme qui en a besoin.

Aperçu

En tant que langage d'extension, Lua n'a pas de notion de programme "principal". Il ne fonctionne que lorsqu'il est intégré dans un programme hôte, appelé programme d'intégration ou simplement hôte. Ce programme hôte peut invoquer des fonctions pour exécuter un morceau de code Lua, écrire et lire des variables Lua et enregistrer des fonctions C pour qu'elles soient appelées par le code Lua. En utilisant des fonctions C, Lua peut être amélioré pour traiter un large éventail de domaines différents, créant ainsi des langages de programmation personnalisés qui partagent un cadre syntaxique.

En utilisant l'API Lua, Netezza a créé nzLua. nzLua peut être utilisé pour créer des fonctions définies par l'utilisateur, des agrégats et des fonctions de table sur l'appliance Netezza. Certaines fonctionnalités de Lua, telles que la possibilité d'accéder à des fichiers externes, la possibilité d'exécuter des programmes externes et les fonctionnalités de débogage, ne sont pas disponibles dans nzLua. Outre les fonctionnalités qui ont été supprimées, de nombreuses fonctions ont été ajoutées à nzLua afin de rendre le langage facile à utiliser pour les développeurs qui sont familiers avec les fonctions standard disponibles dans SQL. La version de Lua utilisée pour créer nzLuaLuaJIT) utilise des techniques de compilation juste à temps pour compiler les chemins de code fréquemment utilisés directement en instructions 80x86.

Bien que plus lent qu'un UDX construit en C++, le compilateur JIT permet une exécution 5x à 50x rapide que celle d'autres langages interprétés tels que Perl, Python et JavaScript (y compris JavaScript V8, qui utilise également un compilateur JIT). Pour faciliter au maximum l'apprentissage de nzLua, le kit de développement nzLua comprend un répertoire d'exemples contenant des exemples de fonctions définies par l'utilisateur, d'agrégats et de fonctions de tableau nzLua. De nombreux exemples sont accompagnés de commentaires détaillés qui expliquent comment utiliser les fonctionnalités disponibles dans nzLua.