Programmieren in Lua

Größe: px
Ab Seite anzeigen:

Download "Programmieren in Lua"

Transkript

1

2 Roberto Ierusalimschy Programmieren in Lua 3. Auflage Open Source Press

3 Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden nach bestem Wissen erstellt. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grunde sind die in dem vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor(en), Herausgeber, Übersetzer und Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht, auch nicht für die Verletzung von Patentrechten, die daraus resultieren können. Ebenso wenig übernehmen Autor(en) und Verlag die Gewähr dafür, dass die beschriebenen Verfahren usw. frei von Schutzrechten Dritter sind. Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. werden ohne Gewährleistung der freien Verwendbarkeit benutzt und können auch ohne besondere Kennzeichnung eingetragene Marken oder Warenzeichen sein und als solche den gesetzlichen Bestimmungen unterliegen. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung des Buches oder Teilen daraus vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlags in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren), auch nicht für Zwecke der Unterrichtsgestaltung, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Bibliografische Information Der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. Copyright 2013 Open Source Press, München Gesamtlektorat: Dr. Markus Wirtz Übersetzer: Dinu Gherman Satz: Open Source Press & Thomas Schraitle (AsciiDoc/DocBook/XSL-FO/XEP) Englische Originalausgabe: Programming in Lua (3rd edition), Copyright 2012 by Roberto Ierusalimschy Umschlaggestaltung: Olga Saborov ISBN: (E-Book PDF) ISBN: (gedruckte Ausgabe)

4 Inhaltsverzeichnis Vorwort 19 I Die Sprache 31 1 Einführung Chunks Einige lexikalische Konventionen Globale Variablen Der Stand-alone-Interpreter Übungsaufgaben Typen und Werte Nil Boolesche Werte Ierusalimschy Programmieren in Lua 5

5 Inhaltsverzeichnis 2.3 Zahlen Strings String-Literale Lange Strings Umwandlungen Tabellen Funktionen Userdata und Threads Übungsaufgaben Ausdrücke Arithmetische Operatoren Vergleichsoperatoren Logische Operatoren Zusammensetzung Der Längenoperator Vorrang Tabellenkonstruktoren Übungsaufgaben Anweisungen Zuweisung

6 Inhaltsverzeichnis 4.2 Lokale Variablen und Blöcke Kontrollstrukturen if then else while repeat Numerisches for Generisches for break, return und goto Übungsaufgaben Funktionen Mehrere Ergebnisse Variadische Funktionen Benannte Argumente Übungsaufgaben Mehr über Funktionen Closures Nicht-Globale Funktionen Saubere Tail-Aufrufe Übungsaufgaben Iteratoren und das generische for 133 Ierusalimschy Programmieren in Lua 7

7 Inhaltsverzeichnis 7.1 Iteratoren und Closures Die Semantik des generischen for Zustandslose Iteratoren Iteratoren mit komplexem Zustand Echte Iteratoren Übungsaufgaben Kompilierung, Ausführung und Fehler Kompilierung Vorkompilierter Code C-Code Fehler Fehlerbehandlung und Ausnahmen Fehlermeldungen und Tracebacks Übungsaufgaben Koroutinen Koroutinen-Grundlagen Pipes und Filter Koroutinen als Iteratoren Nicht-Präemptives Multithreading

8 Inhaltsverzeichnis 9.5 Übungsaufgaben Vollständige Beispiele Das Acht-Damen-Rätsel Die häufigsten Wörter Markov-Ketten-Algorithmus Übungsaufgaben II Tabellen und Objekte Datenstrukturen Arrays Matrizen und mehrdimensionale Arrays Verkettete Listen Queues und doppelte Queues Mengen und Multimengen String-Puffer Graphen Übungsaufgaben Datendateien und Persistenz Datendateien Ierusalimschy Programmieren in Lua 9

9 Inhaltsverzeichnis 12.2 Serialisierung Tabellen ohne Zyklen speichern Tabellen mit Zyklen speichern Übungsaufgaben Metatabellen und Metamethoden Arithmetische Metamethoden Vergleichende Metamethoden Bibliotheksdefinierte Metamethoden Metamethoden für den Tabellenzugriff Die Methamethode index Die Metamethode newindex Tabellen mit Vorgabewerten Tabellenzugriffe mitverfolgen Nur-lesbare Tabellen Übungsaufgaben Die Umgebung Globale Variablen mit dynamischen Namen Globale Variablendeklarationen Nicht globale Umgebungen Anwendung von _ENV

10 Inhaltsverzeichnis 14.5 _ENV und load Übungsaufgaben Module und Pakete Die Funktion require Module umbenennen Suchpfade Suchfunktionen Der grundlegende Ansatz beim Schreiben von Lua-Modulen Umgebungen benutzen Untermodule und Pakete Übungsaufgaben Objektorientierte Programmierung Klassen Vererbung Mehrfachvererbung Kapselung Der Einmethoden-Ansatz Übungsaufgaben Schwache Tabellen und Finalisierer 319 Ierusalimschy Programmieren in Lua 11

11 Inhaltsverzeichnis 17.1 Schwache Tabellen Memoisierungsfunktionen Objektattribute Noch einmal zu Tabellen mit Vorgabewerten Ephemere Tabellen Finalisierer Übungsaufgaben III Die Standardbibliotheken Die mathematische Bibliothek Übungsaufgaben Die Bitwise-Bibliothek Übungsaufgaben Die Tabellen-Bibliothek Einfügen und Entfernen Sortieren Zusammensetzung Übungsaufgaben Die String-Bibliothek

12 Inhaltsverzeichnis 21.1 Grundlegende String-Funktionen Funktionen bei Mustervergleichen Die Funktion string.find Die Funktion string.match Die Funktion string.gsub Die Funktion string.gmatch Muster Captures Ersetzungen URL-Kodierung Tabulator-Expansion Tipps und Tricks Unicode Übungsaufgaben Die Ein-/Ausgabe-Bibliothek Das einfache Ein-/Ausgabe-Modell Das vollständige Ein-/Ausgabe-Modell Ein kleiner Performance-Trick Binärdateien Weitere Datei-Operationen Ierusalimschy Programmieren in Lua 13

13 Inhaltsverzeichnis 22.4 Übungsaufgaben Die Betriebssystem-Bibliothek Datum und Zeit Weitere Systemaufrufe Übungsaufgaben Die Debug-Bibliothek Möglichkeiten der Introspektion Zugriff auf lokale Variablen Zugriff auf nicht-lokale Variablen Zugriff auf andere Koroutinen Hooks Profile Übungsaufgaben IV Die C-API Eine Übersicht über die C-API Ein erstes Beispiel Der Stack Elemente ablegen Elemente abrufen

14 Inhaltsverzeichnis Weitere Stack-Operationen Fehlerbehandlung mit der C-API Fehlerbehandlung in Anwendungscode Fehlerbehandlung in Bibliothekscode Übungsaufgaben Erweiterung einer Anwendung Die Grundlagen Tabellenmanipulation Aufruf von Lua-Funktionen Eine generische Aufruffunktion Übungsaufgaben C aus Lua aufrufen C-Funktionen Continuations C-Module Übungsaufgaben Techniken zum Schreiben von C-Funktionen Array-Manipulation String-Manipulation Ierusalimschy Programmieren in Lua 15

15 Inhaltsverzeichnis 28.3 Zustand in C-Funktionen speichern Das Register Upvalues Gemeinsam genutzte Upvalues Übungsaufgaben Benutzerdefinierte Typen in C Userdata Metatabellen Objektorientierter Zugriff Array-Zugriff Leichtgewichtige Userdata Übungsaufgaben Ressourcen verwalten Ein Verzeichnisiterator Ein XML-Parser Übungsaufgaben Threads und Zustände Mehrere Threads Lua-Zustände

16 Inhaltsverzeichnis 31.3 Übungsaufgaben Speicherverwaltung Die Allokierungsfunktion Die Speicherbereinigung API der Speicherbereinigung Übungsaufgaben Index 591 Ierusalimschy Programmieren in Lua 17

17

18 Vorwort Als Waldemar, Luiz und ich 1993 mit der Entwicklung von Lua begannen, konnten wir nicht ahnen, dass sich die Sprache derartig verbreiten würde. Ursprünglich als hausinterne Sprache für zwei spezielle Projekte entwickelt, wird Lua heute in allen möglichen Bereichen eingesetzt, die von einer einfachen, erweiterbaren, portablen und effizienten Scriptsprache profitieren. Dazu gehören z. B. eingebettete Systeme, mobile Geräte, Webserver und natürlich Spiele. Wir haben Lua von Anfang so entworfen, dass es mit Software integriert werden kann, die in C/C++ und anderen konventionellen Sprachen geschrieben ist. Diese Integration hat viele Vorteile. Lua ist eine sehr kleine und einfache Sprache, weil es nicht Dinge versucht, die C bereits gut kann, zum Beispiel bei reiner Performance, Low-Level-Operationen und dem Einbinden der Software von Drittanbietern. Für diese Aufgaben verlässt sich Lua auf C. Lua bietet vielmehr das, was C nicht so gut kann: Lua hat einen vernünftigen Abstand zur Hardware, dynamische Strukturen, keine Redundanzen, einfache Möglichkeiten zum Testen und zur Fehlersuche (Debugging). Dazu bietet es eine sichere Umgebung, automa- Ierusalimschy Programmieren in Lua 19

19 Vorwort tische Speicherverwaltung und gute Fähigkeiten beim Umgang mit Strings und weiteren Arten von Daten mit dynamischer Größe. Zum Teil verdankt Lua seine Stärke seinen Bibliotheken. Das ist kein Zufall; schließlich ist Erweiterbarkeit eines der wesentlichen Konzepte der Sprache. Die Erweiterbarkeit basiert auf vielen Eigenschaften: Dynamische Typisierung ermöglicht einen hohen Grad an Polymorphie. Automatische Speicherverwaltung vereinfacht Schnittstellen, weil niemand entscheiden muss, wer für die Allokierung und Deallokierung von Speicher oder die Behandlung eines Überlaufs verantwortlich ist. Funktionen höheren Grades und anonyme Funktionen ermöglichen einen hohen Grad an Parametrisierung, was die Funktionen vielseitiger macht. Lua ist nicht nur eine erweiterbare Sprache, sondern darüber hinaus auch eine Klebesprache (Glue Language). Es unterstützt einen komponentenorientierten Ansatz bei der Softwareentwicklung, bei dem eine Anwendung durch die Kombination existierender High-Level-Komponenten entsteht. Diese Komponenten werden in einer kompilierten, statisch typisierten Sprache wie C oder C++ geschrieben. Lua ist der Klebstoff, mit dem wir diese Komponenten zusammezustellen und miteinander verbinden. Normalerweise stellen die Komponenten (bzw. Objekte) konkretere Low- Level-Konzepte (wie Widgets und Datenstrukturen) dar, die sich während der Programmentwicklung kaum noch verändern und die im fertigen Programm den Großteil der CPU-Zeit verbrauchen. Lua bestimmt die endgültige Form der Anwendung, die sich vermutlich über den Lebenszyklus des Produkts hinweg stark verändern wird. Aber im Gegensatz zu anderen Klebetechnologien ist Lua zugleich selbst eine vollständige Sprache. Darum lässt es sich nicht nur benutzen, um Komponenten zu verbinden, sondern auch um sie anzupassen und umzugestalten und um völlig neue Komponenten zu erstellen. 20

20 Vorwort Natürlich ist Lua nicht die einzige verfügbare Scriptsprache. Es gibt weitere Sprachen, die Sie für den mehr oder weniger gleichen Zweck benutzen können. Dennoch bietet Lua eine Reihe von Eigenschaften, die es in vielen Fällen zur besten Wahl machen: Erweiterbarkeit Die Erweiterbarkeit von Lua ist so beachtlich, dass es von vielen nicht als Sprache betrachtet wird, sondern als Baukasten zur Erstellung domänenspezifischer Sprachen. Wir haben Lua von Grund auf so entworfen, dass die Sprache sowohl durch Lua-Code als auch externen C-Code erweitert werden kann. Als Beweis implementiert Lua das meiste der eigenen Grundfunktionalität mit Hilfe externer Bibliotheken. Es ist sehr leicht, eine Schnittstelle zwischen Lua und C/C++ zu benutzen, und Lua wurde auch mit mehreren anderen Sprachen integriert, darunter Fortran, Java, Smalltalk, Ada, C# und sogar anderen Scriptsprachen wie Perl und Python. Einfachheit Lua ist eine einfache und kleine Sprache. Es hat wenige (aber mächtige) Konzepte. Diese Einfachheit macht Lua leicht erlernbar und trägt zu seinem geringen Umfang bei. Eine vollständige Distribution (Quellcode, Manual sowie Binärdateien für einige Plattformen) findet auf einer Floppy Disk ausreichend Platz. Effizienz Lua hat eine sehr effiziente Implementierung. Unabhängige Benchmarks zeigen, dass Lua eine der schnellsten Sprachen in der Kategorie der Scriptsprachen ist. Ierusalimschy Programmieren in Lua 21

21 Vorwort Portabilität Wenn wir von Portabilität sprechen, meinen wir damit, dass Lua auf sämtlichen Plattformen läuft, von denen wie je gehört haben: sämtliche UNIX- und Windows-Varianten, PlayStation, Xbox, Mac OS X und ios, Android, Kindle Fire, NOOK, Haiku, QUALCOMM Brew, IBM Mainframes, RISC OS, Symbian OS, Rabbit-Prozessoren, Raspberry Pi, Arduino und viele andere. Der Quellcode für all diese Plattformen ist nahezu identisch. Lua kommt ohne bedingte Kompilierung aus, um seinen Code an verschiedene Rechner anzupassen. Stattdessen hält es sich an Standard-ANSI (ISO) C. Darum müssen Sie Lua normalerweise nicht an eine neue Umgebung anpassen: Steht Ihnen ein ANSI C- Compiler zur Verfügung, müssen Sie Lua einfach nur kompilieren. Zielgruppe Lua-Benutzer lassen sich grob in drei Gruppen unterteilen: jene, die Lua bereits eingebettet in einem Anwendungsprogramm nutzen, jene, die Lua als eigenständige Sprache benutzen, und jene, die Lua zusammen mit C benutzen. Viele benutzen Lua eingebettet in einem Anwendungsprogramm, z. B. Adobe Lightroom, Nmap oder World of Warcraft. Diese Anwendungen verwenden die Lua-C-API, um neue Funktionen zu registrieren, neue Typen zu erstellen und um das Verhalten einiger Operationen in der Sprache zu ändern, wenn sie Lua für ihre speziellen Bereiche anpassen. Manche Entwickler von Lightroom-Plugins kennen beispielsweise keinen anderen Einsatzzweck der Sprache; Nmap-Nutzer halten Lua oftmals für die Sprache der Nmap Scripting Engine; Spieler von World of Warcraft mögen Lua für eine Sprache halten, die es nur in diesem Spiel gibt. 22

22 Vorwort Lua ist auch als alleinstehende Sprache nützlich, nicht nur für die Textbearbeitung und kleine Einmalprogramme, sondern zunehmend auch für mittelgroße bis große Projekte. In solchen Fällen stammt die Hauptfunktionalität von Lua aus Bibliotheken. Die Standardbibliotheken bieten z. B. Mustervergleiche und weitere Funktionen für die Behandlung von Strings. Weil Lua die Unterstützung von Bibliotheken permanent verbessert, sind zahlreiche externe Pakete entstanden. Lua Rocks, ein Deployment- und Management-System für Lua-Module, umfasst derzeit mehr als 150 Pakete. Und schließlich gibt es jene Programmierer, die auf dem anderen Ende der Bank arbeiten und Anwendungen schreiben, die Lua als C-Bibliothek benutzen. Diese werden mehr in C als in Lua programmieren, benötigen aber ein gutes Verständnis von Lua, um Schnittstellen zu erstellen, die einfach sind, leicht zu benutzen und gut mit der Sprache integriert. All jenen hat dieses Buch manches zu bieten. Der erste Teil behandelt die Sprache selbst und zeigt, wie Sie ihr ganzes Potential erschließen. Wir konzentrieren uns auf verschiedene Sprachkonstrukte und verwenden zahlreiche Beispiele, um zu zeigen, wie man sie für praktische Aufgaben einsetzt. Einige Kapitel in diesem Teil behandeln grundlegende Konzepte wie Kontrollstrukturen, während sich andere auch fortgeschrittenen Themen wie Iteratoren und Koroutinen widmen. Der zweite Teil befasst sich ausschließlich mit Tabellen, der einzigen Datenstruktur in Lua. In den Kapiteln geht es um Datenstrukturen, Persistenz, Pakete und objektorientiertes Programmieren. An dieser Stelle enthüllen wir die wirkliche Macht der Sprache. Der dritte Teil stellt die Standardbibliotheken vor. Dieser Teil ist besonders für jene von Interesse, die Lua als alleinstehende Sprache verwenden, auch wenn viele andere Anwendungen ebenfalls alle Standardbibliotheken oder Teile davon enthalten. Jedes Kapitel dieses Teils behandelt eine Ierusalimschy Programmieren in Lua 23

23 Vorwort Standardbibliothek: die mathematische Bibliothek, die bitweise Bibliothek, die Tabellen-Bibliothek, die String-Bibliothek, die I/O-Bibliothek, die Betriebssystem-Bibliothek und die Debug-Bibliothek. Der letzte Teil des Buchs behandelt schließlich die API zwischen Lua und C und ist hilfreich für alle, die C einsetzen, um die gesamten Fähigkeiten von Lua zu nutzen. Der Stil dieses Teils unterscheidet sich notwendigerweise sehr von dem des übrigen Buchs. Hier werden wir in C programmieren, nicht in Lua wir setzen uns also einen anderen Hut auf. Manche Leser werden sich nur am Rande für die C-API interessieren, während andere darin den wichtigsten Teil dieses Buchs sehen werden. Über die dritte Auflage Dieses Buch ist eine aktualisierte und erweiterte Fassung der zweiten Auflage von Programming in Lua (auch als PiL 2 Buch bekannt). Auch wenn die Struktur des Buchs nahezu unverändert geblieben ist, enthält diese neue Auflage sehr viel neues Material. Erstens habe ich das gesamte Buch auf Lua 5.2 aktualisiert. Von besonderer Bedeutung ist das Kapitel über Umgebungen, das weitgehend neu geschrieben wurde. Außerdem habe ich mehrere Beispiele umgeschrieben, um zu zeigen, wie man die neuen Merkmale in Lua 5.2 nutzt. Ich habe aber die Unterschiede zu Lua 5.1 deutlich kenntlich gemacht, damit Sie das Buch auch für diese Version nutzen können. Zweitens was noch wichtiger ist habe ich in allen Kapiteln Beispiele ergänzt: von einfachen Fragen zur Sprache bis hin zu vollständigen kleinen Projekten. Einige illustrieren wichtige Aspekte der Lua-Programmierung und sind ebenso wichtig wie jene, die Ihren Werkzeugkasten nützlicher Techniken erweitern. 24

24 Vorwort Wie schon die erste und zweite Auflage haben wir auch die dritte Auflage der englischen Originalausgabe Programming in Lua selbst herausgebracht. Trotz der Einschränkungen beim Marketing bringt dies einige Vorteile mit sich: Wir haben vollkommene Kontrolle über den Inhalt des Buches; wir behalten alle Rechte, das Buch auch in anderer Form anzubieten; wir haben die Freiheit zu entscheiden, wann eine neue Ausgabe erscheint; und wir stellen sicher, dass die Druckfassung lieferbar bleibt. Weitere Quellen Das Lua 5.2 Reference Manual ist ein Muss für jeden, der eine Sprache wirklich lernen möchte. Dieses Buch ist kein Ersatz für dieses Manual. Ganz im Gegenteil, beide ergänzen einander. Das Manual beschreibt Lua nur, aber es enthält weder Beispiele noch Grundprinzipien hinter den Sprachkonstrukten. Auf der anderen Seite beschreibt es die gesamte Sprache, während dieses Buch die selten vorkommenden, dunklen Ecken von Lua übergeht. Auch ist das Manual das maßgebliche Dokument über Lua. Überall, wo dieses Buch vom Manual abweicht, sollten Sie dem Manual vertrauen. Um das Manual und weitere Information über Lua zu erhalten, sollten Sie die Lua-Website besuchen.¹ Nützliche Information finden Sie auch auf der Website der Lua-Community.² Unter anderem finden Sie dort ein Tutorial, eine Liste von Paketen und Dokumentation von Drittanbietern sowie ein Archiv der offiziellen Lua-Mailingliste. ¹ ² Ierusalimschy Programmieren in Lua 25

25 Vorwort Dieses Buch beschreibt Lua 5.2, auch wenn ein Großteil ebenso für Lua 5.1 und Lua 5.0 gilt. Die wenigen Unterschiede zwischen Lua 5.2 und älteren Versionen von Lua 5 sind im Text deutlich markiert. Sollten Sie eine neuere Version verwenden (die nach diesem Buch erschienen ist), sollten Sie im entsprechenden Manual nachsehen, welche Unterschiede es zwischen den Versionen gibt. Wenn Sie eine Version einsetzen, die älter als 5.2 ist, wäre nun ein guter Zeitpunkt für eine Aktualisierung. Einige typografische Konventionen In diesem Buch werden String-Literale, einzelne Zeichen wie a, Strings, die als Muster verwendet werden (z. B. [%w_]*), kurze Codebrocken wie auch Bezeichner im Fließtext mit einer anderen Schrift hervorgehoben. Längere Codebeispiele werden bildschirmähnlich dargestellt: -- program "Hello World" print("hello World") --> Hello World Die Notation --> zeigt die Ausgabe einer Anweisung oder manchmal das Ergebnis eines Ausdrucks: print(10) --> > 16 Da zwei Minuszeichen (--) in Lua einen Kommentar einleiten, gibt es kein Problem, falls Sie diese Anmerkungen in Ihren Programmen einbauen. Und schließlich wird in diesem Buch die Notation <--> benutzt, um anzuzeigen, dass etwas äquivalent zu etwas anderem ist: dies <--> jenes 26

26 Vorwort Mit anderen Worten: In Lua macht es keinen Unterschied, ob Sie dies oder jenes schreiben. Beispiele ausführen Sie benötigen einen Lua-Interpreter, um die Beispiele in diesem Buch auszuführen. Idealerweise nutzen Sie Lua 5.2, doch laufen die meisten Beispiele auch ohne Änderungen mit Lua 5.1. Die Lua-Webseite³ verwaltet den Sourcecode des Interpreters. Haben Sie einen C-Compiler und wissen, wie man C-Code kompiliert, sollten Sie Lua aus den Quellen installieren; es ist wirklich einfach. Die Website Lua Binaries (suchen Sie nach luabinaries) bietet vorkompilierte Lua- Interpreter für die bekanntesten Plattformen. Nutzen Sie Linux oder ein anderes UNIX-ähnliches System, werden Sie vielleicht auch im Repository Ihrer Distribution fündig; einige Distributionen bieten bereits Lua-Pakete an. Unter Windows ist Lua for Windows (suchen Sie nach luaforwindows) eine gute Option, eine Starten-und-loslegen-Umgebung für Lua. Sie umfasst den Interpreter, einen integrierten Texteditor und zahlreiche Bibliotheken. Wenn Sie Lua eingebettet in einer Anwendung nutzen, wie etwa WoW oder Nmap, sollten Sie sich das Handbuch der Applikation ansehen oder einen local guru befragen, wie Sie Ihre Programme zum Laufen bringen. Immer jedoch ist Lua dieselbe Sprache; das meiste von dem, was Sie in diesem Buch sehen, gilt unabhängig davon, wie sie Lua einsetzen. Dennoch empfehle ich Ihnen, Ihre Lua-Studien mit dem eigenständigen Lua-Inter- ³ Ierusalimschy Programmieren in Lua 27

27 Vorwort preter zu beginnen und damit erste Beispiele und Experimente laufen zu lassen. Danksagung Die erste Ausgabe dieses Buches liegt beinahe 10 Jahre zurück. Einige Freunde und Institutionen haben mir während dieser Reise geholfen. Wie immer gaben Luiz Henrique de Figueiredo und Waldemar Celes, die Koautoren von Lua, alle erdenkliche Hilfe. André Carregal, Asko Kauppi, Brett Kapilik, Diego Nehab, Edwin Moragas, Fernando Jefferson, Gavin Wraith, John D. Ramsdell und Norman Ramsey gaben wertvolle Hinweise und nützliche Einblicke für verschiendene Ausgaben des Buches. Luiza Novaes, Leiterin des Bereichs Arts & Design der PUC-Rio, fand trotz ihres vollen Terminkalenders die Zeit, das ideale Cover für die englische Ausgabe zu entwerfen. Lightning Source, Inc. erwies sich als verlässliche und effiziente Möglichkeit für Druck und Vertrieb des englischen Buches. Ohne sie wäre das Self-Publishing keine Option gewesen. Das Center for Latin American Studies der Stanford University gewährte mir die notwendigen Pausen von meiner regulären Tätigkeit und eine anregende Umgebung für die Hauptarbeit an dieser dritten Auflage. Ebenfalls danken möchte ich der Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) und dem Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) für die kontinuierliche Unterstützung meiner Arbeit. 28

28 Vorwort Zuletzt möchte ich Noemi Rodriguez meine tiefe Dankbarkeit ausdrücken, für alle Formen der Hilfe (technischer und nicht-technischer Art) und dass sie mein Leben erhellt. Zur deutschen Ausgabe der 2. Auflage Freudig überrascht war ich, als ich Anfang 2006 eine von Dr. Markus Wirtz von Open Source Press erhielt, in der er vorschlug, eine deutsche Ausgabe meines Buches Programming in Lua herauszubringen. Zu dieser Zeit beendete ich gerade die zweite Auflage (was Markus nicht wissen konnte), und die Rechte für die deutsche Ausgabe waren verfügbar. Meine Freude hatte mehrere Gründe: Erstens war der Vorschlag selbst schon ein Zeichen für den Erfolg des Buches, zweitens tut es dem Lebenslauf gut, und drittens ist eine deutsche Ausgabe eine große Hilfe bei der Verbreitung von Lua. Immerhin gibt es in Deutschland die zweitgrößte Lua-Community nach der englischsprachigen, und viele Spitzenleute auf den Lua-Mailinglisten kommen aus Deutschland. Für die Überraschung gab es auch einige Gründe: Ich muss gestehen, meine Erfahrungen mit Verlagen waren nicht besonders erfreulich. (Letztlich entschied ich mich, die englische Ausgabe im Selbstverlag herauszugeben.) Darum fühlte ich mich nicht nur geschmeichelt, sondern dachte auch: Das funktioniert nicht. Gut, ich habe mich geirrt. Deshalb muss ich Markus Wirtz von Open Source Press danken; die Partnerschaft erwies sich als sehr produktiv. Außerdem danke ich meinem Übersetzer Dinu Gherman und dem Verlag für die sorgfältige Übersetzung und Bearbeitung. Ich verstehe zwar nicht genug Deutsch, um die Qualität zu beurteilen, aus den präzisen Fragen war aber zu entnehmen, dass sie mit Ierusalimschy Programmieren in Lua 29

29 Vorwort Engagement bei der Sache waren. Letztendlich hat sich also auch die Überraschung in Zufriedenheit verwandelt. Zur deutschen Ausgabe der 3. Auflage Wieder habe ich die Freude, die Neuauflage von Programming in Lua in deutscher Übersetzung zu begrüßen. Und wieder ist es mir eine Freude, mit Open Source Press und Dr. Markus Wirtz zu arbeiten. Wir hatten über all die Jahre eine fruchtbare Zusammenarbeit, und ich bin sicher, dass sie noch viele Jahre fortdauern wird. Lua hat seit der letzten Auflage deutlich an Popularität gewonnen (und die deutsche Übersetzung hat sicher dazu beigetragen), doch die Sprache selbst hat ihren minimalistischen Charakter bewahrt. Darum ist diese Neuauflage nicht viel umfangreicher als die letzte. Doch sie enthält viel neues Material, einschließlich der Updates auf die Lua-Version 5.2 und Übungen in allen Kapiteln, die Ihnen helfen, das Gelesene zu wiederholen, und die einige neue Konzepte einführen. Ich hoffe, es gefällt Ihnen! 30

30 Teil I Die Sprache

Programmieren in Lua

Programmieren in Lua Roberto lerusalimschy Programmieren in Lua 3. Auflage Open Source Press Inhaltsverzeichnis Vorwort 13 I Die Sprache 21 1 Einführung 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale

Mehr

Roberto lerusalimschy. Programmieren mit Lua

Roberto lerusalimschy. Programmieren mit Lua 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

Mehr

Peter Kröner. Einstieg in CSS3. Standards und Struktur. 1. Auflage. Open Source Press

Peter Kröner. Einstieg in CSS3. Standards und Struktur. 1. Auflage. Open Source Press Peter Kröner Einstieg in CSS3 Standards und Struktur 1. Auflage Open Source Press Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden nach bestem Wissen erstellt. Dennoch

Mehr

grep kurz & gut John Bambenek and Agnieszka Klus

grep kurz & gut John Bambenek and Agnieszka Klus grep kurz & gut grep kurz & gut John Bambenek and Agnieszka Klus Beijing Cambridge Farnham Köln Sebastopol Tokyo Copyright der deutschen Ausgabe 2009 by O'Reilly Verlag GmbH & Co.KG Darstellung eines

Mehr

Bleiben Sie auf dem Laufenden!

Bleiben Sie auf dem Laufenden! Badach/Hoffmann Technik der IP-Netze Bleiben Sie auf dem Laufenden! Unser Computerbuch-Newsletter informiert Sie monatlich über neue Bücher und Termine. Profitieren Sie auch von Gewinnspielen und exklusiven

Mehr

Die Skriptsprache Lua. Uwe Berger

Die Skriptsprache Lua. Uwe Berger Uwe Berger bergeruw@gmx.net Uwe Berger Beruf: Softwareentwickler Freizeit: u.a. mit Hard- und Software rumspielen Linux seit ca. 1995 BraLUG e.v. bergeruw@gmx.net Uwe Berger; 2017 2 Meine Motivation...

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

3., erweiterte Auflage

3., erweiterte Auflage 3., erweiterte Auflage Friedrich Bollow Matthias Homann Klaus-Peter Köhn inklusive CD-ROM C C++ und für Embedded Systems Hardwareübersicht für die Mikrocontroller HC08, C166/C167 und ATMEL ATmega Einführung

Mehr

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

Visual C#.NET. Bearbeitet von Patrick A. Lorenz Visual C#.NET Bearbeitet von Patrick A. Lorenz 1. Auflage 2002. Taschenbuch. 256 S. Paperback ISBN 978 3 446 22132 1 Format (B x L): 16,8 x 24,1 cm Gewicht: 640 g Zu Leseprobe schnell und portofrei erhältlich

Mehr

Copyright (C) Open Source Press

Copyright (C) Open Source Press Riemer Hemer: CrossVC Tilo Riemer Frank Hemer CrossVC Grafische Versionskontrolle mit CVS und Subversion Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden nach bestem Wissen

Mehr

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2 iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...

Mehr

Programmieren lernen mit Perl

Programmieren lernen mit Perl Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete

Mehr

Benutzerhandbuch 10/2011 MN04802101Z-DE. Kommunikation System

Benutzerhandbuch 10/2011 MN04802101Z-DE. Kommunikation System Benutzerhandbuch 10/2011 MN04802101Z-DE Kommunikation System Impressum Hersteller Eaton Automation AG Spinnereistrasse 8-14 CH-9008 St. Gallen Schweiz www.eaton-automation.com www.eaton.com Support Region

Mehr

Inhaltsverzeichnis. Vorwort.11

Inhaltsverzeichnis. Vorwort.11 Inhaltsverzeichnis Vorwort.11 Kapitel 1 Einführung in die C-Programmierung 17 1.1 Ein erstes C-Programm 17 1.1.1 Analyse des Zinseszins-Programms 17 1.2 Compilieren und Ausführen eines Programms 24 1.3

Mehr

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 8. September 2014 Der Text, die Abbildungen und Programme

Mehr

Die Kunst der JavaScript- Programmierung

Die Kunst der JavaScript- Programmierung D3kjd3Di38lk323nnm Marijn Haverbeke Die Kunst der JavaScript- Programmierung Eine moderne Einführung in die Sprache des Web Übersetzung: Volkmar Gronau, Flensburg Copy-Editing: Dr. Anja Stiller-Reimpell,

Mehr

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm Joachim Baumann Gradle Ein kompakter Einstieg in modernes Build-Management Joachim Baumann joachim.baumann@codecentric.de Lektorat: René Schönfeldt Copy Editing: Sandra Gottmann, Münster-Nienberge

Mehr

Sebastian Springer, Testgetriebene Entwicklung mit JavaScript, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

Sebastian Springer, Testgetriebene Entwicklung mit JavaScript, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm D3kjd3Di38lk323nnm Sebastian Springer ist Diplom-Informatiker (FH) und arbeitet als JavaScript-Entwickler bei der Mayflower GmbH in München. Neben seiner Tätigkeit als Consultant unterrichtet er als Dozent

Mehr

C für Java-Programmierer

C für Java-Programmierer Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im

Mehr

Patrick Lobacher TYPO3 CMS 6. Installation, Neuerungen, Upgrade. 1. Auflage. Open Source Press

Patrick Lobacher TYPO3 CMS 6. Installation, Neuerungen, Upgrade. 1. Auflage. Open Source Press Patrick Lobacher TYPO3 CMS 6 Installation, Neuerungen, Upgrade 1. Auflage Open Source Press Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden nach bestem Wissen erstellt.

Mehr

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke Inhaltsverzeichnis 1 Der objektorientierte Ansatz... 1 1.1 Ein einführendes Beispiel...2 1.1.1 Aktive Objekte...4 1.1.2 Klassifikation...4 1.1.3 Datenkapselung...6 1.2 OOP im Überblick...6 1.3 Programmaufbau...7

Mehr

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren... Datei: 5220_A02Inhalt.doc, Seite3 15. September 2010 Teil I Erste Schritte 1 Einleitung.... 9 1.1 Was Sie erwartet und was Sie nicht erwartet.... 9 1.2 Wie die Kapitel aufgebaut sind.... 10 1.3 Beispieldateien....

Mehr

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen Inhalt 3 Bemerkung... 9 Vorwort... 10 1 Programme und Programmiersprachen 1.1 Assembler... 13 1.2 Höhere Programmiersprachen... 15 1.2.1 Interpreter... 16 1.2.2 Compiler... 17 1.2.3 Zwischencode... 18

Mehr

Addition und Subtraktion ungleichnamiger Brüche

Addition und Subtraktion ungleichnamiger Brüche Addition und Subtraktion ungleichnamiger Brüche Inhaltsverzeichnis Inhaltsverzeichnis... 1 Impressum... 2 Addition und Subtraktion ungleichnamiger Brüche... 3 Aufgabe 1... 5 Aufgabe 2... 8 Aufgabe 3...

Mehr

Testen in Scrum-Projekten

Testen in Scrum-Projekten Tilo Linz ist Vorstand und Mitgründer der imbus AG, einem führenden Lösungsanbieter für Softwaretest und seit mehr als 20 Jahren im Themengebiet Softwarequalitätssicherung und Softwaretest tätig. Als Gründer

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

Die Programmiersprache Lua. Philipp Hoppermann

Die Programmiersprache Lua. Philipp Hoppermann Die Programmiersprache Lua Philipp Hoppermann Die Programmiersprache Lua Einleitung Sprachumfang Datentypen und -strukturen Kontrollstrukturen Funktionen Exceptions Coroutinen Metatables und Metamethoden

Mehr

Positive und negative Zahlen

Positive und negative Zahlen Positive und negative Zahlen Inhaltsverzeichnis Inhaltsverzeichnis... 2 Impressum... 3 Qualifizierungseinheit Addition und Subtraktion mit positiven und negativen Zahlen 4 Addition und Subtraktion gemischt...

Mehr

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

Lua. June 9, 2015. Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua ) Lua Marcus Brenscheidt Marcin Golkowski Dynamische Programmiersprachen June 9, 2015 June 9, 2015 1 / 15 Geschichte I Entwickelt von Roberto Ierusalimschy, Luiz Henrique und Waldemar Celes Mitglieder der

Mehr

Vorwort... 11 Warum JavaScript?... 12 Welche Kosten hast du?... 13 Für wen ist dieses Buch?... 13

Vorwort... 11 Warum JavaScript?... 12 Welche Kosten hast du?... 13 Für wen ist dieses Buch?... 13 Inhalt Vorwort.................................. 11 Warum JavaScript?.................................... 12 Welche Kosten hast du?................................ 13 Für wen ist dieses Buch?...............................

Mehr

Neuronale Netze selbst programmieren

Neuronale Netze selbst programmieren D3kjd3Di38lk323nnm Neuronale Netze selbst programmieren Ein verständlicher Einstieg mit Python Tariq Rashid Deutsche Übersetzung von Frank Langenau Tariq Rashid Lektorat: Alexandra Follenius Übersetzung:

Mehr

C für Java- Programmierer

C für Java- Programmierer Carsten Vogt C für Java- Programmierer mit 59 Bildern, 36 Tabellen und 35 Aufgaben HANSER Inhalt 1 Einführung 13 Schnelleinstieg 14 1.1 C und Java von den Anfängen bis heute 15 1.1.1 Die Entwicklung von

Mehr

Programming 101. Carl Herrmann IPMB & DKFZ

Programming 101. Carl Herrmann IPMB & DKFZ Programming 101 Carl Herrmann IPMB & DKFZ Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben Gemeinsamkeiten Alle Programmiersprachen

Mehr

Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen

Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen hans-bernhard WOYAND PYTHON FÜR INGENIEURE UND NATURWISSENSCHAFTLER Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen Im Internet: Beispiele und Lösungen zu den Aufgaben

Mehr

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache

Mehr

PHP Programmierung. Seminarunterlage. Version 1.07 vom

PHP Programmierung. Seminarunterlage. Version 1.07 vom Seminarunterlage Version: 1.07 Version 1.07 vom 19. Dezember 2018 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203

Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203 Inhaltsübersicht Vorwort 15 Vorwort zur deutschen Ausgabe 22 Kapitel 1 Elemente der Programmierung 25 Kapitel 2 Funktionen und Module 203 Kapitel 3 Objektorientierte Programmierung 335 Kapitel 4 Algorithmen

Mehr

Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME

Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME beschäftigte er sich von Beginn an intensiv mit Android. Als

Mehr

Kommentierung in C. Kommentierung in C. Von Sebastian Rothe 1/26. Kommentierung in C

Kommentierung in C. Kommentierung in C. Von Sebastian Rothe 1/26. Kommentierung in C Von Sebastian Rothe 1/26 Inhaltsverzeichnis 1. Programmierstil eine Übersicht 2. Motivation wozu Kommentierung? 3. Aspekte der Kommentierung 4. GLib als Beispiel 5. Dokumentationssysteme 6. Zusammenfassung

Mehr

PostScript -Einführung

PostScript -Einführung PostScript -Einführung Frank Richter 27.01.2003 Was ist PostScript? Einfache, interpretierte Programmiersprache, deren Hauptzweck die Beschreibung von Text, geometrischen Formen und Rasterbildern ist.

Mehr

Android. Hacking. Android Hacking. Android. Hacking. Ihr Smartphone kann mehr, als Sie denken: Hacken Sie Ihr Gerät, bevor es andere tun.

Android. Hacking. Android Hacking. Android. Hacking. Ihr Smartphone kann mehr, als Sie denken: Hacken Sie Ihr Gerät, bevor es andere tun. 60378-2 U1+U4 22.12.15 11:15 Seite 1 Aus dem Inhalt: Apps und PC-Tools zum Rooten Alternative Softwarearchive und Repositories Alternative Launcher Nützliche System-Apps Werbung entdecken und blockieren

Mehr

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren Hanspeter Mössenböck Sprechen Sie Java? Eine Einführung in das systematische Programmieren 3., überarbeitete und erweiterte Auflage Tm\ dpunkt.verlag 1 Grundlagen 1 1.1 Daten und Befehle 2 1.2 Algorithmen

Mehr

Java-Grundkurs für Wirtschaftsinformatiker

Java-Grundkurs für Wirtschaftsinformatiker Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich

Mehr

Kurt Tepperwein. Meine Beziehung zu meinem Partner

Kurt Tepperwein. Meine Beziehung zu meinem Partner Kurt Tepperwein Meine Beziehung zu meinem Partner Kurt Tepperwein Meine Beziehung zu meinem Partner Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet

Mehr

Das Einsteigerseminar Objektorientierte Programmierung in Java

Das Einsteigerseminar Objektorientierte Programmierung in Java Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java -H-H Inhalt Vorwort 13 Einleitung 15 1 Java 21 1.1 Die Geschichte von Java 22 1.2 Das Konzept 24 Klassisch - Compiler und

Mehr

Initiative Tierwohl. Einrichtung des FTP-Zugangs zur Clearingstelle. In 5 Schritten zum sicheren FTP-Zugang. Version 1.1 19.05.

Initiative Tierwohl. Einrichtung des FTP-Zugangs zur Clearingstelle. In 5 Schritten zum sicheren FTP-Zugang. Version 1.1 19.05. Initiative Tierwohl Einrichtung des FTP-Zugangs zur Clearingstelle In 5 Schritten zum sicheren FTP-Zugang Version 1.1 19.05.2016 arvato Financial Solutions Copyright bfs finance. Alle Rechte vorbehalten.

Mehr

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes Technik Jan Kröger Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes Diplomarbeit Bibliografische Information der Deutschen

Mehr

Elektrotechnik für Ingenieure Klausurenrechnen

Elektrotechnik für Ingenieure Klausurenrechnen Elektrotechnik für Ingenieure Klausurenrechnen Wilfried Weißgerber Elektrotechnik für Ingenieure Klausurenrechnen Aufgaben mit ausführlichen Lösungen 5., korrigierte und verbesserte Auflage Mit 331 Abbildungen

Mehr

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH Wirtschaft Markus Hartmann Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information

Mehr

Definitionen/Vorarbeit zum Thema Java

Definitionen/Vorarbeit zum Thema Java Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript

Mehr

Programmieren mit Java

Programmieren mit Java Reinhard Schiedermeier Programmieren mit Java 2., aktualisierte Auflage ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

Mehr

Java für Fortgeschrittene

Java für Fortgeschrittene Java für Fortgeschrittene Springer Berlin Heidelberg New York Barcelona Budapest Hongkong London Mailand Paris Santa Clara Singapur Tokio Norman Hendrich Java für Fortgeschrittene Mit 87 Abbildungen Springer

Mehr

Jochen Bartlau. List & Label. schnell + kompakt

Jochen Bartlau. List & Label. schnell + kompakt Jochen Bartlau List & Label Jochen Bartlau List & Label ISBN 978-3-939084-68-6 2007 entwickler.press, ein Imprint der Software & Support Verlag GmbH 1. Auflage, 2007 http://www.entwickler-press.de http://www.software-support.biz

Mehr

Pisafit Mathematik Klammern. Inhaltsverzeichnis

Pisafit Mathematik Klammern. Inhaltsverzeichnis Klammern Inhaltsverzeichnis Inhaltsverzeichnis... 2 Impressum... 3 Klammern... 5 Typische Stolpersteine... 7 Übungsaufgaben:... 8 Übungsaufgaben... 9 Mehrere Klammerebenen... 12 Seite 2 Impressum Produktion:

Mehr

Annette Weinert. Programmieren mit Ada und C

Annette Weinert. Programmieren mit Ada und C Annette Weinert Programmieren mit Ada und C ~- Programmierung Einführung in die Programmiersprache Modula-2 von H. Pudlatz Parallele Programmierung mit Modula-2 von E. A. Heinz Ada von M. Nagl Programmieren

Mehr

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21 Vorwort 15 Themenübersicht... 15 Verwendung im Studium... 17 Voraussetzungen... 18 Ziele.... 19 Website zum Buch... 20 Danksagungen... 21 Vorwort zur deutschen Ausgabe 22 Übersetzung... 22 Verwendung in

Mehr

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Über diesen Kurs 2. Der Python Interpreter 3. Python Scripte 4. Grundlagen der Sprache 5. Das erste Programm 6. Operatoren

Mehr

Aktenlösung ADDISON - Ausfüllhilfe zur ZiPP Ärztestatistik. Produktdokumentation

Aktenlösung ADDISON - Ausfüllhilfe zur ZiPP Ärztestatistik. Produktdokumentation Aktenlösung ADDISON - Ausfüllhilfe zur ZiPP Ärztestatistik Produktdokumentation Aktenlösung ADDISON Ausfüllhilfe zur ZiPP Ärztestatistik Benutzerhandbuch Stand: Januar 2012 Copyright (C) 2011 ADDISON Software

Mehr

Richtig einsteigen: Access 2007 VBA-Programmierung

Richtig einsteigen: Access 2007 VBA-Programmierung Lorenz Hölscher Richtig einsteigen: Access 2007 VBA-Programmierung Miaosott Teill Erste Schritte 1 Einleitung 9 1.1 Die Themenschwerpunkte dieses Buches 9 Visual Basic for Applications 9 Die Beispiel-Datenbank

Mehr

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona DAS EINSTEIGERSEMINAR Datenbankprogrammierung mit MySQL 5 und PHP 5 von Helma Spona Neuausgabe Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona schnell und portofrei erhältlich bei beck-shop.de DIE

Mehr

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Alexander Niemann. Das Einsteigerseminar < Objektorientierte ^ Programmierung in Java. bhv. i.- Alexander Niemann Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java i.- bhv Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Teil \ LöRTEn ;...-.,-......Al f Java 19 Die

Mehr

Handbuch SEBLOD. Mehr als nur das Standard-Joomla!: Das Content Construction Kit SEBLOD in der Praxis. Axel Tüting

Handbuch SEBLOD. Mehr als nur das Standard-Joomla!: Das Content Construction Kit SEBLOD in der Praxis. Axel Tüting Axel Tüting SEBLOD Handbuch Mehr als nur das Standard-Joomla!: Das Content Construction Kit SEBLOD in der Praxis. Installation, Konfiguration und Erweiterung mit bestehenden Apps Alles für die eigene App:

Mehr

Die Skriptsprache Lua. Uwe Berger

Die Skriptsprache Lua. Uwe Berger Uwe Berger bergeruw@gmx.net Uwe Berger Beruf: Softwareentwickler Freizeit: u.a. mit Hard- und Software rumspielen Linux seit ca. 1995 BraLUG e.v. bergeruw@gmx.net Uwe Berger; 2017 2 Meine Motivation...

Mehr

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME beschäftigte er sich von Beginn an intensiv mit Android. Als

Mehr

Java als erste Programmiersprache

Java als erste Programmiersprache Joachim Göll Cornelia Heinisch Java als erste Programmiersprache Grundkurs für Hochschulen 8., überarbeitete Auflage Springer Vi eweg Inhaltsverzeichnis 1 Grundlagen der Programmierung 1 1.1 Das erste

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Taschenbuch. Paperback ISBN 978 3 8266 7414 3 Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden > Prozedurorientierte Programmierung

Mehr

F. Sause W. Tölle. Einführung in die Programmiersprache C++

F. Sause W. Tölle. Einführung in die Programmiersprache C++ F. Sause W. Tölle Einführung in die Programmiersprache C++ ------ --------------------------------- Aus dem Bereich Computerliteratur Einführung in die Programmiersprache Ada, von Manfred Nagl Einführung

Mehr

Mathematik Problemlösungen mit MATHCAD und MATHCAD PRIME

Mathematik Problemlösungen mit MATHCAD und MATHCAD PRIME Mathematik Problemlösungen mit MATHCAD und MATHCAD PRIME Hans Benker Mathematik Problemlösungen mit MATHCAD und MATHCAD PRIME Prof. Dr. Hans Benker Martin-Luther-Universität Halle-Wittenberg Naturwissenschaftliche

Mehr

Java I Vorlesung 1 Einführung in Java

Java I Vorlesung 1 Einführung in Java Java I Vorlesung 1 Einführung in Java Alexander Koller koller@coli.uni-sb.de 26.4.2004 Problem Algorithmus Programm Programmiersprachen Warum Java? Unser erstes Java-Programm Organisatorisches Was heißt

Mehr

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke JavaScript Das umfassende Referenzwerk David Flanagan Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke O'REILLY Cambridge Köln Paris Sebastopol Tokyo Vorwort xiii 1: Einführung in

Mehr

Dietmar Abts. Masterkurs Client/Server-Programmierung mit Java

Dietmar Abts. Masterkurs Client/Server-Programmierung mit Java Dietmar Abts Masterkurs Client/Server-Programmierung mit Java Leserstimmen zur 1. Auflage: Sehr schöne Beispiele. Sehr aktuelle Themen. Prof. Dr. Reinhard Brocks, HTW Saarbrücken Besonders gut gefallen

Mehr

Enterprise PHP Tools

Enterprise PHP Tools 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Stefan Priebsch Werkzeuge und Methoden für einen effizienten Entwicklungsprozess

Mehr

Java-Grundkurs für rtschaftsinformatiker

Java-Grundkurs für rtschaftsinformatiker Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für rtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung- Fortgeschrittene Konzepte kennenlernen Betriebswirtschaftlich orientierte

Mehr

BC402. Advanced ABAP GLIEDERUNG DES KURSES. Version der Schulung: 16 Dauer der Schulung: 5 Tage

BC402. Advanced ABAP GLIEDERUNG DES KURSES. Version der Schulung: 16 Dauer der Schulung: 5 Tage BC402 Advanced ABAP. GLIEDERUNG DES KURSES Version der Schulung: 16 Dauer der Schulung: 5 Tage SAP-Copyright und Markenzeichen 2017 SAP SE oder ein SAP-Konzernunternehmen. Alle Rechte vorbehalten. Weitergabe

Mehr

Perl Programmierung Grundlagen

Perl Programmierung Grundlagen Seminarunterlage Version: 4.06 Copyright Version 4.06 vom 17. Dezember 2018 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Dr. Heinz Kabutz und Sven Ruppert. Dynamic Proxies. Effizient programmieren. schnell+kompakt

Dr. Heinz Kabutz und Sven Ruppert. Dynamic Proxies. Effizient programmieren. schnell+kompakt Dr. Heinz Kabutz und Sven Ruppert Dynamic Proxies Effizient programmieren schnell+kompakt Dr. Heinz Kabutz und Sven Ruppert Dynamic Proxies. Effizient programmieren schnell+kompakt ISBN 978-3-86802-340-4

Mehr

Cockpit Update Manager

Cockpit Update Manager Cockpit Update Manager ARCWAY AG Potsdamer Platz 10 10785 Berlin GERMANY Tel. +49 30 8009783-0 Fax +49 30 8009783-100 E-Mail info@arcway.com ii Rechtliche Hinweise Bitte senden Sie Fragen zum ARCWAY Cockpit

Mehr

Vermögenseinlagen stiller Gesellschafter, Genußrechtskapital und nachrangige Verbindlichkeiten als haftendes Eigenkapital von Kreditinstituten

Vermögenseinlagen stiller Gesellschafter, Genußrechtskapital und nachrangige Verbindlichkeiten als haftendes Eigenkapital von Kreditinstituten Wirtschaft Markus Stang Vermögenseinlagen stiller Gesellschafter, Genußrechtskapital und nachrangige Verbindlichkeiten als haftendes Eigenkapital von Kreditinstituten Vergleichende Darstellung sowie kritische

Mehr

Spritzgießwerkzeuge kompakt

Spritzgießwerkzeuge kompakt Harry Pruner Wolfgang Nesch Spritzgießwerkzeuge kompakt Ein Praxisbuch für Einsteiger Pruner, Nesch Spritzgießwerkzeuge kompakt Harry Pruner Wolfgang Nesch Spritzgießwerkzeuge kompakt Ein Praxisbuch für

Mehr

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

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung

Mehr

Einführung in wxwidgets & wxdev-c++

Einführung in wxwidgets & wxdev-c++ Einführung in wxwidgets & wxdev-c++ Vortrag im Rahmen der Vorlesung Computational Physics im Sommersemester 2009 Folie 1/13 Gliederung wxwidgets: Übersicht wxdev-c++: Übersicht Installation wxwidgets Syntax

Mehr

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure 2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie

Mehr

Brother Image Viewer Anleitung für Android

Brother Image Viewer Anleitung für Android Brother Image Viewer Anleitung für Android Version 0 GER Zu den Hinweisen In diesem Benutzerhandbuch wird das folgende Symbol verwendet: HINWEIS Hinweise informieren Sie, wie auf eine bestimmte Situation

Mehr

Video-Marketing mit YouTube

Video-Marketing mit YouTube Video-Marketing mit YouTube Christoph Seehaus Video-Marketing mit YouTube Video-Kampagnen strategisch planen und erfolgreich managen Christoph Seehaus Hamburg Deutschland ISBN 978-3-658-10256-2 DOI 10.1007/978-3-658-10257-9

Mehr

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage ISO-SiMMlarcl als erste Programmiersprache Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage B.G.Teubner Stuttgart Leipzig 1999 Inhaltsverzeichnis 1.1 Algorithmen und

Mehr

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung

Mehr

Android- Handbuch. 4., aktualisierte und erweiterte Auflage

Android- Handbuch. 4., aktualisierte und erweiterte Auflage Großes Kapitel zur Sicherheit und Privatsphäre 4., aktualisierte und erweiterte Auflage Andreas Itzchak Rehberg Android- Handbuch Einsteiger-Workshop, Apps, Datensicherung, Sicherheit, Privatsphäre, Tuning,

Mehr

Programmierung von verteilten Systemen und Webanwendungen mit Java EE

Programmierung von verteilten Systemen und Webanwendungen mit Java EE Programmierung von verteilten Systemen und Webanwendungen mit Java EE Frank Müller-Hofmann Martin Hiller Gerhard Wanner Programmierung von verteilten Systemen und Webanwendungen mit Java EE Erste Schritte

Mehr

4. AUFLAGE. Praxiswissen TYP03. Robert Meyer mit Olaf Clemens. O'REILLY* Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo

4. AUFLAGE. Praxiswissen TYP03. Robert Meyer mit Olaf Clemens. O'REILLY* Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo 4. AUFLAGE Praxiswissen TYP03 Robert Meyer mit Olaf Clemens O'REILLY* Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo 1 Einführung 1 Über dieses Buch 2 Aktualisierung auf TYP03-Version 4.3 : 3 Aufbau

Mehr

Einführung in die Computerlinguistik Einführung in Perl (1)

Einführung in die Computerlinguistik Einführung in Perl (1) Einführung in die Computerlinguistik Einführung in Perl (1) Dozentin: Wiebke Petersen 26.11.2009 Wiebke Petersen Einführung CL (WiSe 09/10) 1 Compiler Ein Compiler (auch Übersetzer oder Kompilierer genannt)

Mehr

Access 2010. für Windows. Andrea Weikert 1. Ausgabe, 4. Aktualisierung, Juni 2012. Grundlagen für Anwender

Access 2010. für Windows. Andrea Weikert 1. Ausgabe, 4. Aktualisierung, Juni 2012. Grundlagen für Anwender Andrea Weikert 1. Ausgabe, 4. Aktualisierung, Juni 2012 Access 2010 für Windows Grundlagen für Anwender ACC2010 2 Access 2010 - Grundlagen für Anwender 2 Mit Datenbanken arbeiten In diesem Kapitel erfahren

Mehr

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

Inhaltsverzeichnis. Teil I Erste Schritte. 1 Einleitung Teil II Grundlagen von VBA. 2 Die ersten VBA-Prozeduren erstellen... Datei: 00b.doc, Seite3 1. Oktober 2010 Inhaltsverzeichnis Teil I Erste Schritte 1 Einleitung.... 9 1.1 Die Themenschwerpunkte dieses Buches... 9 Visual Basic for Applications... 9 Die Beispieldatenbank...

Mehr

Validation. Naomi Feil Vicki de Klerk-Rubin. Ein Weg zum Verständnis verwirrter alter Menschen. Ernst Reinhardt Verlag München Basel

Validation. Naomi Feil Vicki de Klerk-Rubin. Ein Weg zum Verständnis verwirrter alter Menschen. Ernst Reinhardt Verlag München Basel Naomi Feil Vicki de Klerk-Rubin Validation Ein Weg zum Verständnis verwirrter alter Menschen 10., durchgesehene Auflage Ernst Reinhardt Verlag München Basel Titel der amerikanischen Originalausgabe: Validation

Mehr

Liste MI / Liste I Programmieren in C++

Liste MI / Liste I Programmieren in C++ Liste MI / Liste I Programmieren in C++ Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Medieninformatik WS 2007/2008 Kapitel 1-4 1 Ziele Kennenlernen einer weiteren objektorientierten

Mehr

Die С ++-Programmiersprache

Die С ++-Programmiersprache Bjarne Stroustrup Die С ++-Programmiersprache 3., aktualisierte und erweiterte Auflage Deutsche Übersetzung von Nicolai Josuttis und Achim Lörke raddison-wesley An imprint of Addison Wesley Longman, Inc.

Mehr

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer Inhaltsverzeichnis Einleitung Warum man programmieren können sollte.... xi Warum Python?.... xii Und warum Minecraft?... xii Was du in diesem Buch findest... xiii Online-Ressourcen....xv Möge das Abenteuer

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

»Glück ist die wesensgerechte Entfaltung menschlicher Anlagen" (Nach Aristoteles)

»Glück ist die wesensgerechte Entfaltung menschlicher Anlagen (Nach Aristoteles) »Glück ist die wesensgerechte Entfaltung menschlicher Anlagen" (Nach Aristoteles) Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation

Mehr

Vorwort Lichteffekte mit Arduino_NEU.indd :00:47

Vorwort Lichteffekte mit Arduino_NEU.indd :00:47 Vorwort 5 Das Lernpaket»Lichteffekte mit Arduino«wurde genauso wie die Arduino Plattform für Künstler, Designer und Bastler entwickelt. Es richtet sich ganz besonders an alle, die möglichst schnell erste

Mehr