Programowanie w systemie UNIX

Z Wikibooks, biblioteki wolnych podręczników.
Skocz do: nawigacja, szukaj
NewTux.svg

Ten podręcznik opisuje podstawy programowania w Linuksie

Wprowadzenie[edytuj]

  1. Wstęp
  2. dostęp
    1. Konsola - tryb tekstowy
      1. Zdalny dostęp (ang. remote acces) : ssh
      2. Przekierowania, łączenie poleceń ( potok, polecenia złożone )
    2. tryb graficzny
  3. Pamięć

Języki programowania i narzędzia[edytuj]

  1. BASH
    1. ack - "lepszy niż grep "
    2. awk lub gawk (gnu awk)
    3. bc
    4. dc
    5. diff : różnice, łaty
    6. grep
    7. ls
    8. sed
    9. wc
  2. C : CPU, GPU, obliczenia numeryczne, grafika, ...
    1. GNU UPC
  3. C++
    1. C++ i Allegro
    2. C++ i GTK
    3. C++ i QT
    4. C++ i OpenGL
  4. D
  5. Fortran
  6. Haskell
  7. Icon
  8. Java
  9. JavaScript
  10. Lisp
    1. Common Lisp
    2. Scheme
    3. Arc
    4. Clojure
    5. Emacs Lisp
  11. Lua
  12. OCaml
  13. Pascal
  14. Perl
  15. PHP
  16. Prolog
  17. Python
  18. Ruby

Metody/technologie/ specjalistyczne programy[edytuj]

  1. Dane
    1. typy
      1. wg możliwości odczytu :
        1. Dane do odczytu maszynowego
        2. Dane do odczytu przez człowieka
      2. wg zawartości
        1. tekstowe
        2. numeryczne ( liczbowe)
        3. obrazowe
    2. Bazy danych
      1. SQL
        1. MySql w PHP
  2. Obliczenia
    1. obliczenia symboliczne (CAS) i numeryczne
      1. Maxima
      2. GNU Octave
    2. Statystyczne
      1. R , czyli języku programowania i środowisku do obliczeń statystycznych i wizualizacji wyników
    3. Obliczenia równoległe
      1. OpenMP
      2. GPGPU
        1. OpenGl
        2. OpenCl
        3. CUDA
  3. www
    1. Django
    2. PHP
  4. Grafika - komputerowe przetwarzanie obrazów
    1. GIMP
    2. gnuplot
    3. Processing
    4. WebGl
    5. WebCl
    6. Dane tekstowe w obrazach, metadata
  5. tekst : obsługa biura / przetwarzanie tekstów / publikacje
    1. Pliki tekstowe, kodowanie i formatowanie
    2. WYSIWYG (ang. What You See Is What You Get – widzisz to, co dostajesz)
      1. LibreOffice , OpenOffice.org
      2. Emacs
      3. Vim
      4. Gedit
    3. języki znaczników
      1. TeX
        1. Latex
  6. Wyrażenia regularne

Budowanie programu [edytuj]

  1. planowanie : sformułowanie problemu i opis algorytmu w języku naturalnym
  2. Dokumentacja kodu
  3. Kontrola wersji
    1. zcentralizowane
      1. Subversion
      2. CVS
    2. rozproszone ( zdecentralizowane )
      1. Git
      2. Mercurial
  4. Kompilacja
    1. Ręczne ( ang. "hand compilation", aka "manual build" )
    2. Automatyczne
      1. Make i automake ( GNU build system)
      2. Apache Ant
      3. SCons
      4. Rake - Ruby Make
      5. Flex_i_Bison
      6. Pants, Apache Maven, gradle, sbt
  5. linkowanie ( konsolidacja ) :
    1. ręcznie wpisana ścieżka [1]
    2. pkg-config
  6. Odpluskwiane (ang. debugging)
    1. z użyciem printf
    2. gdb
    3. VAlgrind
    4. kcachegrind[2]
    5. Statyczna analiza kodu[3]
      1. cppcheck
      2. stack [4]
      3. kint [5]
      4. sparse [6]
  7. testowanie
  8. optymalizacja ( profilowanie )
    1. gprof
  9. Praca grupowa
    1. Jak rozwijać gotowe projekty ?
    2. Jak zadawać pytania ?

Literatura[edytuj]

  1. Literatura