Cours introduction sur Lua Gems en PDF


Télécharger Cours introduction sur Lua Gems en PDF

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Cours de base d'introduction sur Lua Gems [Eng]

....

Quand j'ai besoin d'un langage de programmation aussi simple que possible à intégrer, je choisis Lua. Lua n'est pas seulement souple, gratuit, portable et compact, cependant; Il est aussi puissant et pour en tirer le meilleur parti, je suis content d'avoir Lua Programming Gems.

Je dois expliquer que je veux dire quelque chose de spécifique par là. La plupart de mes lectures se font sur le Net: je recherche des références, je lis des tutoriels pour du matériel non familier, je modère une demi-douzaine de wikis, et je discute de techniques spécifiques avec cola, ¬lègues en ligne. Ma consommation de livres a plongé dans le nez. Lua Programming Gems est un livre qui vaut la peine d'être lu, cependant: ses différents chapitres comprennent des idées qui ne sont simplement pas expliquées ailleurs.

Lua Programming Gems met l'accent sur la praticité d'une manière que j'aime. Alors que les six auteurs de la partie III emploient certainement des concepts de salle de classe correctement dans leurs examens des «algorithmes et des structures de données», ils font tout cela avec le code de travail Lua. Le même schéma est apparent à travers Lua Programming Gems: il est rempli d'idées susceptibles de m'aider dans mon prochain projet de programmation.

Si vous êtes nouveau à Lua, vous pourriez être inquiet de ce que vous trouverez. Vous pouvez voir que Lua offre des avantages certains, mais à quel point est-il difficile de choisir ce qui est indéniablement une langue minoritaire? Lua Programming Gems soulagera vos préoccupations: les auteurs écrivent clairement, modestement, et même habilement. Le tout premier chapitre, par exemple, aborde les matériaux difficiles, y compris le stockage par thread alloué dynamiquement. Le ton est constant tout au long du livre. Plutôt que de montrer leur expertise ou de se livrer à des blagues privées, des habitudes communes aux auteurs d'autres domaines, les auteurs de Lua Programming Gems se concentrent sur les détails spécifiques et les exemples qui enseignent le mieux leurs sujets choisis. Ils le rendent invitant à creuser plus profondément dans Lua que vous ne le feriez vous-même.

Parmi les points forts de Lua Programming Gems pour moi: Partie IV donne un aperçu de «Game Programming», un domaine où je ne vais probablement jamais travailler, bien que beaucoup de techniques appliquer plus largement; La partie V sur «Embedding and Extending» est cruciale pour une grande partie de la programmation que j'aime; et le chapitre 13, «Les exceptions à Lua», est un de mes intérêts particuliers.

Voulez-vous «bien programmer» à Lua? L'équipe de Lua a fixé cela comme objectif quand elle a annoncé ses premiers projets pour Lua Programming Gems. Le résultat final remplit cet objectif. vous l'aimerez.

Lua et Lightroom

Mark Hambourg

Fondateur, Adobe Photoshop Lightroom

Lorsque nous avons commencé à travailler sur le projet qui allait devenir Adobe Photoshop Lightroom, nous savions que nous voulions faire de la scriptabilité une partie importante de notre histoire, si tôt nous avons passé en revue les suspects habituels. Ce qui nous a attirés à Lua était sa combinaison de simplicité, de puissance, de facilité d'intégration et de performance relativement élevée. Avoir une licence simple a aidé aussi quand il est venu le temps de parler aux avocats d'Adobe. Personnellement, en tant qu'ancien fan de Scheme, j'ai été attiré par son soutien de fermeture de première classe. J'ai également trouvé le système de coroutine intrigant. Le minimalisme relatif a également résonné avec une attitude de retour à l'essentiel qui nous a fait se retirer de l'utilisation intensive de C ++ et de retour vers C.

Pourtant, il était difficile de positionner Lua autrement que comme un choix obscur. Nous pourrions citer un usage intensif dans la communauté des jeux et nous avions décidé d'apprendre quelque chose auprès des développeurs de jeux, mais si on nous demandait quels matériaux nous pouvions utiliser pour apprendre Lua ou où nous trouverions des pro-grammeurs expérimentés Lua, les réponses étaient limitées. Pour le premier, nous avions un manuel de référence bien écrit, du bon matériel sur le wiki des utilisateurs Lua et un forum intelligent sur la liste de diffusion Lua. C'était du bon matériel, mais il n'y en avait pas beaucoup. Pour la dernière question, notre réponse était essentiellement "Tout programmeur digne d'être embauché devrait être capable d'apprendre Lua rapidement." C'était une situation que nous étions prêts à traiter et la L'arrivée de la programmation à Lua a certainement aidé, mais il était facile de comprendre pourquoi cela pouvait déranger quelqu'un qui regardait de l'extérieur.

Pourquoi est-ce important avec la simplicité de Lua vient certains problèmes qui font trébucher les gens avec des antécédents dans d'autres langues. La beauté d'un petit noyau est qu'il existe une réelle opportunité de maîtrise. C'est l'une des grandes forces de Câ € ™ s aussi. Ce petit noyau, cependant, a un prix. Par exemple, Lua n'a pas de syntaxe pour la gestion des exceptions. C doesnâ € ™ t soit mais en avoir un semble presque nécessaire dans les langues modernes. Lua a une syntaxe pour les envois de messages orientés objet, mais la mise en œuvre réelle d'un système d'objet ou d'un système de classe est une affaire de rouler soi-même dans Lua. En conséquence, on voit de tels problèmes soulevés à plusieurs reprises sur la liste des utilisateurs Lua que les personnes nouvelles à la langue commencent à l'utiliser et

alors demandez â € "Mais qu'en est-il? Â ¢ â,¬

La programmation en Lua fournit des réponses à certaines de ces questions mais ces réponses sont nécessairement laconiques. Lua Programming Gems approfondit ces questions et bien d'autres. Il montre des façons de gérer le problème de threading, nous avons parcouru quelques itérations dans Lightroom ... et donne des exemples étendus de la façon de connecter Lua dans votre application. Vous ne pouvez pas toujours aimer les réponses. Par exemple, le système objet présenté ici est assez minimaliste. Dans l'esprit de Lua, cependant, vous restez libre de rouler les vôtres en utilisant ou non les idées présentées ici. La valeur vient en voyant les exemples bien travaillés avec une discussion des motivations et des comparaisons à d'autres approches. Si ce livre avait été autour pendant le développement de Lightroom, nous aurions probablement adopté avec bonheur certaines des techniques qu'il présente tout en s'inspirant des autres. En fait, nous devions trouver notre propre chemin et, même si c'était gratifiant en soi, la communauté de Lua et en particulier les nouveaux utilisateurs de Lua peuvent être heureux d'avoir maintenant un guide de terrain qui cartographie certains des sentiers.

La leçon plus large de Lightroom que je voudrais laisser aux utilisateurs de Lua est que vous devriez le laisser envahir votre travail. Lua est parfois décrit comme étant un langage pour coller des morceaux ensemble, mais comme nous avons découvert que la colle peut s'étendre assez profondément. Nous avons commencé à chercher un langage de script pour une application de code natif. Puis nous avons commencé à penser que ce serait bien de permettre à Lua d'exister en tant que pair au code natif. En fin de compte, nous nous sommes retrouvés avec un système où le code natif fournit la base, mais il est effectivement un citoyen de seconde classe dans l'application dans son ensemble. De grandes parties de Lightroom ont fini par être écrites dans Lua, y compris la couche de mappage objet-relationnel pour la base de données et le système de mise en page pour les vues. Lua définit la structure de l'application et ses mécanismes d'extensibilité. En conséquence, nous avions une application qui était de loin inférieure à celle de certains de ses concurrents, facile à changer, largement inter-plate-forme dans sa mise en œuvre, et ne souffrait pratiquement d'aucun cycle de compilation-liaison. La raison pour laquelle les choses fonctionnent de cette façon est que Lua est à la fois très expressif par rapport à la plupart des langues natives et suffisamment efficace pour que vous puissiez le laisser faire beaucoup plus de travail que dans d'autres langages de script. Dans le même temps, la frontière entre le code natif et Lua est suffisamment claire et efficace pour que lorsque nous devions faire des choses en code natif, ce n'était pas une lourde charge d'exposer cette fonctionnalité à Lua ni d'accéder aux fonctionnalités. écrit en Lua.



Donc, mon conseil aux utilisateurs de Lua et aux utilisateurs potentiels est de réfléchir sérieusement à la façon dont vous pouvez laisser Lua se répandre dans votre travail, être reconnaissant pour des livres comme celui-ci et Programmation à Lua et être encore plus reconnaissant pour le travail de Lua. fait et leur générosité en le partageant avec le monde.

Contributeurs

Suivant la tradition brésilienne, les contributeurs sont listés par ordre alphabétique de prénom.

André Carregal a été présenté à Lua en 1994 pendant sa maîtrise en informatique, supervisée par Roberto Ierusalimschy. Il travaille depuis 1996 sur le développement web à l'aide de Lua. Il coordonne actuellement le projet Kepler et le site de LuaForge tout en travaillant comme consultant pour des projets liés à Lua.

Ben Sunshine-Hill est un étudiant en doctorat à l'Université de Pennsylvanie, étudiant l'infographie. Il a fait ses études de premier cycle à l'Université de Californie du Sud et a reçu une maîtrise de l'Université de Californie à Los Angeles. Il a été développeur de jeux dans plusieurs studios de développement de jeux mobiles et traditionnels, et a déjà publié des travaux sur les méthodes de rendu en temps réel.

Diego Nehab a été présenté à Lua en 1996, alors qu'il travaillait pour Tecgraf à PUC-Rio. Au cours des années, il a été impliqué dans une variété de projets liés à Lua, y compris les bibliothèques IupLua, CDLua, IMLua et LuaSQL. Il est surtout connu comme l'auteur des bibliothèques LuaThreads et LuaSocket. Diego a reçu un BEng en génie informatique et une maîtrise en programmation Langes de PUC-Rio, sous la supervision de Roberto Ierusalimschy. Il a ensuite reçu une maîtrise et un doctorat en infographie de l'université de Princeton. Ses recherches se concentrent maintenant sur l'acquisition de formes de haute qualité et sur les techniques de rendu en temps réel.

Doug Currie développe des dispositifs médicaux primés avec Sunrise Labs, Inc. à Auburn, New Hampshire, États-Unis. Au cours d'une carrière de trente ans, Doug a dirigé des équipes d'électronique, de mécanique et de logiciels qui ont mis au point des produits de haute technologie en mettant l'accent sur la fiabilité et l'adaptabilité. Certains de ces produits, basés sur une architecture de calcul massivement parallèle que Doug a inventée, sont utilisés dans les transports nationaux et les opérations de fabrication de classe mondiale. Avec un intérêt particulier pour les petites langues, Doug a également contribué techniquement à des projets open source tels que Moscow ML, Hibernate, Gambit Scheme et SICStus Prolog. Doug détient un S.B. diplôme en génie électrique et informatique du Massachusetts Institute of Technology.

Eduardo Ochs est un mathématicien, ou une sorte de; son intérêt pour la simplification des preuves l'a conduit à l'analyse non-standard, et de là il est passé à la logique, à la théorie des types et à la sémantique catégorique. Parallèlement à sa vie universitaire «normale», il contribue au projet GNU depuis 1999, et ses principaux domaines d'intervention dans le domaine des logiciels libres sont les langues et les interfaces textuelles programmables. Il garde une grande page d'accueil désordonnée à ...; Toutes les pages html sont générées avec "BlogMe", une autre petite langue extensible construite au-dessus de Lua.

Gavin Wraith est lecteur émérite en mathématiques, Université du Sussex, Royaume-Uni. Entré à l'université de Sussex en 1963, a pris sa retraite en 1999. Président fondateur du département d'informatique de l'université de Sussex en 1985.

Jérôme Vuarand est un jeune ingénieur logiciel spécialisé en IA et travaillant dans l'industrie du jeu vidéo. Il a découvert Lua tout en cherchant un langage de script intégrable, juste au moment de la sortie de Lua 5.1, et il est tombé amoureux à la fois du langage lui-même et de son nouveau système de paquets. Sa motivation initiale était de s'éloigner des anciens moteurs de script internes, mais il l'utilise maintenant comme un langage de programmation général dans tous ses projets personnels, de la robotique mobile aux moteurs de jeu modernes entièrement écrits en Lua. .

John Belmonte est un ingénieur logiciel résidant actuellement à New York. Il est tombé sur Lua en tant que développeur de jeux vidéo en 2000 et a été parmi les premiers à l'intégrer dans un titre de console de salon. Depuis lors, il a été actif dans la communauté Lua en louant lua-users.org, en participant à des ateliers et en contribuant à l'évolution du langage.

Julio M. FernÃndez-Diaz est titulaire d'un doctorat en ingénierie minière (1989). Il est professeur de physique appliquée à l'Université d'Oviedo en Espagne et effectue des recherches principalement dans le domaine des aérosols atmosphériques. Il s'intéresse au développement de simulations physiques et mathématiques sur ordinateur. Son premier «ordinateur» était un calculateur HP25 en 1977. En tant que programmeur, il utilise Fortran, C, Lua, Tcl / Tk et Postscript, généralement dans le cadre de ses recherches.

Konstantin Sokharev développe professionnellement des jeux vidéo depuis 2001, avec succès deux projets RPG / RTS pour PC, un pour PocketPC / Palm. Il occupe actuellement un poste de directeur technique chez IceHill llc. Développer le titre Action-RTS â € "Empire Above Allâ € et plusieurs projets inopinés.

Luis Eduardo Ximenes Carvalho est titulaire d'un BSc (1997) en génie civil de l'Université fédérale de Cearࢠ(UFC), un MSc (2000) en transport

Ingénieur de l'Université Fédérale de Rio de Janeiro (UFRJ), et un MSc (2002) en informatique de l'UFC, tous au Brésil. Il est actuellement candidat au doctorat à la Division des mathématiques appliquées de l'Université Brown, où sa recherche comprend des applications de la statistique bayésienne à la biologie computationnelle. Il s'intéresse également à la logistique et à l'optimisation, au calcul scientifique, à la théorie des graphes et aux langages de programmation, en particulier Lua.

Matthew Burke est professeur assistant en informatique à l'Université George Washington à Washington, D.C. Lua a remplacé Forth comme langue préférée pour programmer dans le métro, et il utilise n'importe quel appareil comme PDA du jour. Il développe également un programme d'introduction à l'informatique qui utilise Lua. Lorsqu'il ne programme pas, il aime voyager avec sa femme et son fils. Il était l'organisateur de l'atelier Lua 2008.

Nicolas Peri est co-fondateur et directeur technique de la société française Stone-Trip, créateur de la plateforme de développement de jeux 3D ShiVa. Il est en charge, entre autres, du moteur de script ShiVa, basé sur Lua. Avant cela, il a travaillé comme développeur de moteurs pour d'autres sociétés de jeux, notamment Kalisto Entertainment et UbiSoft Tiwak.

Patrick Rapin a étudié à l'Ecole Polytechnique Fédérale de Lau-sanne (EPFL). Il est aujourd'hui ingénieur logiciel travaillant pour Olivetti Engineer à Yverdon-les-Bains, développant des firmwares d'imprimantes, des algorithmes de traitement d'images et des outils de test d'imprimantes.



Pedro Miller Rabinovitch, diplômé de PUC-Rio, a travaillé avec Lua chez Tecgraf et Cipher Technology, et est actuellement développeur de jeux chez Jagex.

Rafael Moreira Savelli est diplômé en génie informatique à PUC-Rio. Il a travaillé pour Tecgraf à PUC-Rio pendant plus de quatre ans. Il poursuit actuellement des études de maîtrise à l'UFF et travaille au laboratoire de Visgraf à IMPA.

Ralph Hempel est un ingénieur professionnel en Ontario, Canada et se spécialise dans la conception de systèmes embarqués. Après avoir appris à programmer sur un HP41C, il n'a jamais perdu sa fascination pour les petits langages et le piratage des produits de consommation. Il a écrit pbForth pour le LEGO MINDSTORMS RCX, puis a porté Lua au NXT. Quand il ne se dispute pas avec des systèmes embarqués, Ralph aime faire du vélo de montagne en été, du snowboard en hiver et du hockey sur glace toute l'année.

Ralph Steggink a rejoint Océ en 2001. Diplômé en chimie et en sciences de la communication, il développe aujourd'hui des logiciels de contrôleurs pour imprimantes. Avec Wim Couwenberg, il a prototypé des concepts révolutionnaires en utilisant Lua. Ceux-ci finissent par trouver leur chemin dans plusieurs produits Océ. Il est un joueur de volleyball et un entraîneur enthousiastes.

Reuben Thomas est un chanteur et informaticien indépendant vivant à Lonard. Il a obtenu un baccalauréat en mathématiques avec des sciences informatiques de l'Université de Cambridge, ainsi qu'un doctorat en machines virtuelles. Ces jours-ci, ses centres d'intérêt se concentrent sur des contributions à une multitude de projets open source, avec un accent particulier sur l'amélioration de la qualité des logiciels matures, et sur le traitement automatique des documents. Il est principalement employé comme baryton classique.

Robert Oates est un programmeur de jeux professionnel spécialisé dans les systèmes de gameplay, l'intelligence artificielle et l'apprentissage automatique.

Roberto de Beauclair Seixas travaille à la recherche et développement à l'Institut de mathématiques pures et appliquées (IMPA) à Rio de Janeiro, en tant que membre du Laboratoire de vision et d'infographie (Visgraf). Il a obtenu son doctorat en informatique à PUC-Rio, où il travaille avec le Computer Graphics Technology Group (Tecgraf). De 1982 à 1998, il a travaillé au département d'informatique du Laboratoire national de communication scientifique (LNCC). Ses intérêts de recherche incluent la visualisation scientifique, le rendu de volume, l'infographie, l'informatique haute performance, la modélisation géométrique, les simulations de guerre militaire, le SIG et les images médicales.

Roberto Ierusalimschy est professeur agrégé à l'Université catholique de Rio de Janeiro. Il est le principal architecte de Lua et l'auteur du livre "Programming in Lua".

SÃ © rgio Alvares Maffra est un ingénieur MSc et informatique de PUC-Rio. Il travaille avec Lua chez Tecgraf en tant que développeur de logiciels depuis plus d'une décennie maintenant.

Steve Gargolinski a passé ses premiers jours de programmation à pirater des petits jeux construits avec des extraits de code à partir d'un manuel de programmation QuickBasic. Il a depuis évolué vers un développeur de jeux professionnel, travaillant en tant que membre des équipes techniques qui ont produit la série Zoo Tycoon 2, Star Trek: Legacy, et la prochaine Empire Earth III. Steve travaille actuellement pour Blue Fang Games en tant que programmeur AI. Ses intérêts incluent le baseball, la stratégie abstraite, l'IA pratique et la marche dans les bois.

Tobias Sälzenbrück et Christoph Beckmann sont des étudiants en licence de systèmes médiatiques à l'Université Bauhaus de Weimar. Les domaines d'intérêt de Tobias vont du développement web à la programmation graphique. Il a mis en place un système multi-agents pour simuler les processus de construction à Lua. Christoph s'intéresse également au développement web et est actif dans le domaine de la recherche sur le travail coopératif assisté par ordinateur.

Tomás Guisasola travaille avec Lua depuis 1995 lorsqu'il a développé avec Roberto Ierusalimschy (son conseiller MSc) la première implémentation du mécanisme de hooks et des installations de débogage. Depuis lors, il a travaillé principalement avec CGILua comme plate-forme pour certains systèmes administratifs de PUC-Rio et a également contribué avec l'équipe de Kepler au développement de LuaLDAP, LuaXMLRPC, LuaSOAP, LuaDoc et LuaSQL.

Vadim Groznov a commencé à programmer à l'âge de quatorze ans, a été impliqué dans la programmation de bases de données pendant une longue période et a participé à la création d'un langage de script personnalisé. Il développe professionnellement des jeux vidéo depuis 2002. Sa vaste expérience de la programmation système a permis la conception et la réalisation de solutions architecturales complexes pour les outils de jeu chez IceHill llc.

Wim Couwenberg est titulaire d'un doctorat en mathématiques et travaille au département R & D de la société européenne d'impression et de documentation Océ, basée aux Pays-Bas, où il a organisé l'atelier international Lua 2006. Il utilise Lua dans des projets allant du simple traitement de données. scripts à des applications en réseau entières.

Yuri Takhteyev est un étudiant au doctorat à l'UC Berkeley School of Informaì¬tion étudier le rôle de l'espace dans les communautés de développement de logiciels.

Han Zhao est un programmeur shareware à Beijing, P.R. Chine. Avant cela, il travaillait pour une maison de design de téléphonie mobile. Maintenant, il utilise Lua et C ++ pour la programmation quotidienne: un moteur de jeu de rôle isométrique, un jeu d'action et un produit shareware. Il maintient également une opération peu lib LuaBit sur LuaForge.



97