Roberto lerusalimschy. Programmieren mit Lua



Ähnliche Dokumente
Programmieren in Lua

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Objektorientierte Programmierung in Java

C-Programmierung unter TOS ATARI ST

2. Programmierung in C

Michael Weigend. Python GE-PACKT

Programmierung in Python

Inhalt. Teil I: Der Sprachkern von JavaScript

C++-Entwicklung mit Linux

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik Was ist Informatik? Teilgebiete der Informatik 8

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen...

1. Übung zu "Numerik partieller Differentialgleichungen"

SQL objektorientiert

Knasmüller.book Seite vii Mittwoch, 28. März : vii. Inhaltsverzeichnis

Andy Hunt. Programmieren lernen. mit Minecraft-Plugins. dpunkt.verlag

Objektorientierte Programmierung

Programmieren I. Überblick. Institut für Angewandte Informatik

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

O REILLY. Oracle PL/SQL Programmierung Paris - - Steven Feuerstein. mit Bill Pribyl. Deutsche Übersetzung von Dorothea Reder 2.

1 Einführung Erste Schritte Programmierkurs Datentypen Weiterführende Programmierung

Einführung in die C++ Programmierung für Ingenieure

Programmieren in Lua

Informatik für Ingenieure

J.6 Programmierung eingebetteter Systeme

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Gebundene Typparameter

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Balazs Halasy. ez Publish Grundlagen

jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

jetzt lerne ich PHP 5 & MySQL 4.1 Der schnelle Einstieg in die objektorientierte

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

Die Programmiersprache C99: Zusammenfassung

II.1.1. Erste Schritte - 1 -

Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN:

Beschreibung des Angebotes

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Einführung in die STL anhand eines ausgewählten Beispiels

Woche 1 im Überblick 26

IT-Basics 2. DI Gerhard Fließ

Schulinternes Curriculum im Fach Informatik

Inhaltsverzeichnis. Einleitung... 11

Inhaltsverzeichnis. 1 Hallo 13

Multimedia im Netz Wintersemester 2011/12

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Modul 122 VBA Scribt.docx

PostgreSQL. Professionell und praxisnah. Jens Hartwig. An imprint of Pearson Education

Einführung in die Java- Programmierung

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Vorkurs C++ Programmierung

Auf einen Blick. Vorwort Einführung Sprachgrundlagen von VBScript Objektorientierte Programmierung mit. dem Windows Script Host 115

Erwin Grüner

Java Generics & Collections

5.4 Klassen und Objekte

Einführung in die Programmierung

Lua. June 9, Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua )

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Einführung in die Numerik mit VBA

Informatik mit Delphi

Effiziente Java Programmierung

Was ist das Tekla Warehouse

Inhaltsverzeichnis. Vorwort. Basiswissen

Einführung in die Programmierung

Das Turbo Pascal Lösungsbu

Einführung in die C-Programmierung

VBA-Programmierung: Zusammenfassung

Programmieren I. Überblick. Institut für Angewandte Informatik

Inhalt Einführung... 1 MS Access Datenbanken... 7 Datenbankobjekte Neue Datenbank erstellen... 39

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Kapitel 6: Graphalgorithmen Gliederung

I.1 Die Parrot Assemblersprache

Shell-Programmierung fur Unix und Linux

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Einstieg in VBA mit Excel Galileo Press

Microsoft Excel Schulungen

Übergang vom Diplom zum Bachelor

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Kontrollstrukturen - Universität Köln

Lua Grundlagen Einführung in die Lua Programmiersprache

Teil 5: Server-Side- Programmierung

Inhaltsverzeichnis. 1 Der SQL Server 2008 stellt sich vor Die grafischen Tools des SQL Server Eine neue Datenbank erstellen 87

Einführung in die C++ Programmierung für Ingenieure

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Java lernen mit BlueJ

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Technische Dokumentation SilentStatistikTool

Datenmanagement in Android-Apps. 16. Mai 2013

Tobias Wassermann. Sichere Webanwendungen mit PHP

Große Übung Praktische Informatik 1

Konzepte der Informatik

Transkript:

Roberto lerusalimschy Programmieren mit Lua \

Vorwort 13 1 Die Sprache 21 1 Einführung/ 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale Variablen 27 1.4 DerStand-alone-Interpreter 28 2 Typen und Werte 31 2.1 Nil 32 2.2 Boolesche Werte 32 2.3 Zahlen 33 2.4 Strings 33 2.5 Tabellen 37 2.6 Funktionen 40 2.7 Userdata und Threads 41 3 Ausdrücke 43 3.1 Arithmetische Operatoren 43 3.2 Vergleichsoperatoren 44 / 3.3 Logische Operatoren 45 3.4 Zusammensetzung 46 3.5 Vorrang 47 5

iii llll ll llll ^^l^ no ll l n llll^llll 1ll ll^llnl^1^^^^~^i^ *-^^'^,I^^^ HnBBBBi^BIBB 3.6 Tabellenkonstruktoren 47 4 Anweisungen 51 4.1 Zuweisung 51 4.2 Lokale Variablen und Blöcke 53 4.3 Kontrollstrukturen 55 4.3.1 ifthenelse 55 4.3.2 while 55 4.3.3 repeat v... 56 4.3.4 Numerisches for 56 4.3.5 Generisches for 57 4.4 break und return 59 5 Funktionen 61 5.1 Mehrere Ergebnisse 63 5.2 Variable Anzahl von Argumenten 66 5.3 Benannte Argumente 69 6 Mehr über Funktionen 71 6.1 Closures 74 6.2 Nicht-Globale Funktionen 77 6.3 Saubere Tail-Aufrufe 79 7 Iteratoren und das generische for 83 7.1 Iteratoren und Closures 83 7.2 Die Semantik des generischen for 86 7.3 Zustandslose Iteratoren 87 7.4 Iteratoren mit komplexem Zustand 89 7.5 Echte Iteratoren 90 8 Kompilierung, Ausführung und Fehler 93 8.1 Kompilierung 94 8.2 C-Code 97 8.3 Fehler 98 [~6~

8.4 Fehlerbehandlung und Ausnahmen 100 8.5 Fehlermeldungen und Tracebacks 102 9 Koroutinen 105 9.1 Koroutinen-Grundlagen 106 9.2 Pipes und Filter 109 9.3 Koroutinen als Iteratoren 112 9.4 Nieht-Präemptives Multithreading 114 10 Vollständige Beispiele 121 10.1 Datenbeschreibung 121 10.2 Markov-Ketten-Algorithmus 125 11 Tabellen und Objekte 129 11 Datenstrukturen 131 11.1 Arrays 132 11.2 Matrizen und mehrdimensionale Arrays 133 11.3 Verkettete Listen 134 11.4 Queues und doppelte Queues 135 11.5 Mengen und Multimengen 137 11.6 String-Puffer 138 11.7 Graphen 140 12 Datendateien und Persistenz 143 12.1 Datendateien 143 12.2 Serialisierung 146 12.2.1 Tabellen ohne Zyklen speichern 148 12.2.2 Tabellen mit Zyklen speichern 150 13 Metatabellen und Metamethoden 153 13.1 Arithmetische Metamethoden 154 13.2 Vergleichende Metamethoden 157 13.3 Bibliotheksdefinierte Metamethoden 158

itiutaiaiii»bawmbbiaiiim^ 13.4 Metamethoden für den Tabellenzugriff 159 13.4.1 Die Methamethode index 160 13.4.2 Die Metamethode newindex 161 13.4.3 Tabellen mit Vorgabewerten 162 13.4.4 Tabellenzugriffe mitverfolgen 163 13.4.5 Nur-Iesbare Tabellen 165 14 Die Umgebung 167 14.1 Globale Variablen mit dynamischen Namen \.... 168 14.2 Globale Variablendeklarationen 169 14.3 Nicht globale Umgebungen 172 15 Module und Pakete 175 15.1 Die Funktion require 176 15.2 Der grundlegende Ansatz beim Schreiben von Modulen 180 15.3 Umgebungen benutzen 182 15.4 Die Funktion module 184 15.5 Untermodule und Pakete 185 16 Objektorientierte Programmierung 189 16.1 Klassen 191 16.2 Vererbung 193 16.3 Mehrfachvererbung 195 16.4 Kapselung 197 16.5 Der Einmethoden-Ansatz 200 17 Schwache Tabellen 203 17.1 Memoisierungsfunktionen 205 17.2 Objektattribute 207 17.3 Noch einmal zu Tabellen mit Vorgabewerten 208 111 Die Standardbibliotheken 211 18 Die mathematische Bibliothek 213 8

» ^ Inhaltsverzeichnis 19 Die Tabellenbibliothek 215 19.1 Insert und Remove 215 19.2 Sort 216 19.3 Zusammensetzung 218 20 Die String-Bibliothek 219 20.1 Grundlegende String-Funktionen 220 20.2 Funktionen bei Mustervergleichen 222 20.2.1 Die Funktion string.find 222 20.2.2 Die Funktion string.match 223 20.2.3 Die Funktion string.gsub 224 20.2.4 Die Funktion string.gmatch 224 20.3 Muster... 225 20.4 Captures 229 20.5 Ersetzungen 232 20.5.1 URL-Kodierung 233 20.5.2 Tabulator-Expansion 235 20.6 Tipps und Tricks 236 21 Die Ein-/Ausgabe-Bibliothek 241 21.1 Das einfache Ein-/Ausgabe-Modell 242 21.2 Das vollständige Ein-/Ausgabe-Modell 245 21.2.1 Ein kleiner Performance-Trick 246 21.2.2 Binärdateien!.... 247 21.3 Weitere Datei-Operationen 249 22 Die Betriebssystem-Bibliothek 251 22.1 Datum und Zeit 252 22.2 Weitere Systemaufrufe 254 23 Die Debug-Bibliothek 257 23.1 Möglichkeiten der Introspektion 258 23.1.1 Zugriff auf lokale Variablen 260 23.1.2 Zugriff auf nicht-lokale Variablen 261

^^M^^^MpiMIIIMIIlllpilllllllll ll lll»»m««mpm»»»lll«ll»»l»^^ 23.1.3 Zugriff auf andere Koroutinen 263 23.2 Hooks 264 23.3 Profile 264 IV DieC-API 267 24 Eine Übersicht der C-API 269 24.1 Ein erstes Beispiel \.... 271 24.2 Der Stack 273 24.2.1 Elemente ablegen 274 24.2.2 Elemente abrufen 276 24.2.3 Weitere Stack-Operationen 278 24.3 Fehlerbehandlung mit der C-API 280 24.3.1 Fehlerbehandlung in Anwendungscode 280 24.3.2 Fehlerbehandlung in Bibliothekscode 281 25 Erweiterung einer Anwendung 283 25.1 Die Grundlagen 283 25.2 Tabellenmanipulation 285 25.3 Aufruf von Lua-Funktionen 290 25.4 Eine generische Aufruffunktion 291 26 C aus Lua aufrufen 295 26.1 C-Funktionen 296 26.2 C-Module 298 r^ 27 Techniken zum Schreiben von C-Funktionen 301 27.1 Array-Manipulation 301 27.2 String-Manipulation 303 27.3 Zustand in C-Funktionen speichern 306 27.3.1 Das Register 307 27.3.2 Umgebungen für C-Funktionen 309 27.3.3 Upvalues 310

^ Inhaltsverzeichnis 28 Benutzerdefinierte Typen in C 313 28.1 Userdata 314 28.2 Metatabellen 317 28.3 Objektorientierter Zugriff 320 28.4 Array-Zugriff 322 28.5 Leichtgewichtige Userdata 323 29 Ressourcen verwalten 325 29.1 Ein Verzeichnisiterator 326 29.2 Ein XML-Parser 328 30 Threads und Zustände 339 30.1 Mehrere Threads 340 30.2 Lua-Zustände 344 31 Speicherverwaltung 353 31.1 Die Allokierungsfunktion 354 31.2 Die Speicherbereinigung 356 31.2.1 Atomare Operationen 357 31.2.2 API der Speicherbereinigung 358 \ T71