Linux – Friheden til at programmere

Version 2.5.20050330 – 2020-12-31

Jacob Sparre Andersen

Peter Toft

Hans Schou

En indføring i programmering på og til Linux. Et udvalg af de programmeringssprog der er tilgængelige til Linux, bliver præsenteret sammen med et udvalg af de programmeringsværktøjer der findes til Linux. Bogen indeholder også en introduktion til programmering efter de to hovedparadigmer; imperativ og deklarativ programmering.

Vi har begrænset os til at beskrive værktøjer der distribueres som frit programmel, og programmeringssprog hvis specifikation enten lever op til kravene til en åben specifikation eller har en referenceimplementation der distribueres som frit programmel.


Indholdsfortegnelse
Forord
1. Forord
2. Linux-bøgerne
3. Ophavsret
4. Om forfatterne og bogens historie
5. Vi siger tak for hjælpen
6. Typografi
1. Introduktion
2. Vælg et sprog
2.1. Ada
2.2. Basic
2.3. Bourne shell
2.3.1. Brug af Bourne shell
2.4. C
2.5. C#
2.6. C++
2.7. Cobol
2.8. Comal
2.9. Csh
2.10. Eiffel
2.11. Euphoria
2.12. Forth
2.13. Fortran
2.14. Haskell
2.14.1. Brug af Haskell
2.14.2. Doven evaluering
2.15. Java
2.16. Lisp
2.17. ML
2.17.1. Brug af ML
2.17.2. Eksempel på SML
2.17.3. Iteration i SML
2.18. Modula-2
2.19. Modula-3
2.20. Oberon
2.21. Objective-C
2.22. Objective Caml
2.22.1. Nogle løse noter om OCaml
2.23. Octave
2.24. Pascal
2.25. Perl
2.26. Postscript
2.27. Prolog
2.28. Python
2.29. Ruby
2.29.1. Hej verden!
2.29.2. Et større eksempel
2.29.3. One-liners i Ruby
2.30. Scheme
2.31. Smalltalk
2.32. SQL
2.32.1. Hello, world!
2.33. Tcl/Tk
2.34. TeX
3. Imperativ programmering
3.1. Variable og konstanter
3.2. Tildelinger og typer
3.3. Funktioner og procedurer
3.4. Betingede strukturer
3.5. Løkker
3.6. Dynamiske kald
3.7. Logisk parallelisering
4. Deklarativ programmering
5. Programmørens værktøjskasse
5.1. Concurrent versioning system (CVS)
5.1.1. CVS' funktionalitet
5.1.2. Daglig brug af CVS
5.1.3. Opsætning af CVS
5.1.4. Forgreninger i udviklingen
5.1.5. Diverse med CVS
5.2. diff og patch
5.3. Emacs og forskellige udgaver af filer
5.4. xxdiff
5.5. GNU debuggeren og DDD
5.6. GNU Visual Debugger
5.7. Glade
5.8. Gettext
5.9. Electric Fence
5.10. Brug af oversættelsesfiler ("makefiles")
5.11. Autoconf og automake
5.11.1. Autoconf, underkataloger
5.11.2. Autoconf/automake eksempel
5.11.3. Installation af andre filer
5.11.4. Tjek at en funktion er til stede
5.11.5. Variable i config.h
5.11.6. Autoconf og andre sprog
5.12. Anjuta
5.13. KDevelop
5.14. emacs
5.15. vi
5.16. GRASP
5.17. a2ps
A. Installationsvejledninger
A.1. Ada
A.2. Anjuta
A.3. Basic
A.4. Cobol
A.5. Comal
A.6. Eiffel
A.6.1. På RPM-baserede systemer
A.6.2. På Debian-baserede systemer
A.7. Forth
A.8. Fortran
A.9. GLADE
A.10. Haskell
A.10.1. På RPM-baserede systemer
A.10.2. På Debian-baserede systemer
A.11. Java
A.11.1. Installation af Java3D
A.12. KDevelop
A.13. ML
A.14. Modula-2
A.14.1. På RPM-baserede systemer
A.14.2. På Debian-baserede systemer
A.15. Objective Caml
A.16. Pascal
A.17. Perl
A.18. POSIX Shell
A.19. Postscript
A.19.1. På RPM-baserede systemer
A.19.2. På Debian-baserede systemer
A.19.3. Brug af ghostscript
A.20. Python
A.21. Smalltalk
A.22. SQL
A.23. Tcl/Tk
A.24. TeX
B. Kodebiblioteker
B.1. Grafiske brugergrænseflader
B.2. Grafik (2D og 3D)
B.3. Beregninger
B.4. Internettet
C. Bøger om programmering
C.1. Generelt om imperativ programmering
C.1.1. Objektorienteret programmering
C.1.2. Bøger om Ada
C.1.3. Bøger om Bash
C.1.4. Bøger om Basic
C.1.5. Bøger om C
C.1.6. Bøger om C++
C.1.7. Bøger om COMAL
C.1.8. Bøger om Fortran
C.1.9. Bøger om Haskell
C.1.10. Bøger om Java
C.1.11. Bøger om ML
C.1.12. Bøger om Objective Caml (OCaml)
C.1.13. Bøger om Perl
C.1.14. Bøger om POSIX Shell
C.1.15. Bøger om Postscript
C.1.16. Bøger om Ruby
C.1.17. Bøger om Scheme
C.1.18. Bøger om Tcl/Tk
C.1.19. Bøger om TeX
C.2. Generelt om deklarativ programmering
C.2.1. Bøger om Prolog
C.3. Sjove tekster om programmering
D. Revisionshistorie for bogen
Ordliste
Stikordsregister
Tabelliste
5-1. Filer i et autoconf system
A-1. Pakker til programmering i Ada
A-2. Pakker med GLADE
Figurliste
1. ÅDL
2. Jacob Sparre Andersen (foto: Peter Toft)
5-1. Emacs med to filer indlæst
5-2. Emacs' diff-kommandoer
5-3. Emacs viser første rettelse
5-4. xxdiff med to filer indlæst
5-5. Den venstre udgave er valgt ved første forskel
5-6. DDD
5-7. Design af grafisk brugergrænseflade i Glade (her vist med Aqua-temaet).
5-8. Glades hovedvindue med filen "linux_counter_registrering.glade" indlæst.
5-9. Glades præsentationsvindue med dialogen "Spørgsmål" fra filen "linux_counter_registrering.glade".
5-10. Autoconf road map
5-11. KDevelop
5-12. KDevelop har naturligvis også indbygget dokumentation for at lave grafiske programmer.
A-1. Tcl/Tk programmer tcl1.tcl
A-2. Et stopur i Tcl/Tk
Eksempelliste
2-1. »99 bottles of beer on the wall«
2-2. Kommandolinjetilvalg til GCC
3-1. Barselsorlovslængde
3-2. Supermarkedsåbningstider
5-1. Gå i gang med at bruge et lokalt CVS-arkiv
5-2. Anonym brug af et CVS-arkiv på nettet
5-3. Brug af et CVS-arkiv på nettet over SSH
5-4. Opdatér din personlige kopi af et CVS-arkiv
5-5. Læg en rettet fil tilbage i det fælles CVS-arkiv
5-6. Tilføj en ny fil til et CVS-arkiv
5-7. Fjern en fil fra et CVS-arkiv
5-8. Fjern et helt katalog i et CVS-arkiv
5-9. Læg en rettet fil tilbage i det fælles arkiv direkte inde fra Emacs
5-10. Anvendelse af diff
5-11. Anvendelse af patch
5-12. Eksempel på brug af Gettext fra et POSIX Shell-program
5-13. Eksempel på brug af Gettext fra et Ada-program
5-14. Eksempel på brug af Gettext fra et C-program
5-15. Udskrift af en enkelt fil
5-16. Konvertering af en fil til Postscript
A-1. Installation af pakker på et Debian-baseret system
A-2. Installation af pakker på et RPM-baseret system
A-3. Installation af ".tar.gz"-filer
A-4. Oversætte og køre "smart.adb"