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ęć
  4. licencja

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. du
    6. diff : różnice, łaty
    7. file
    8. grep
    9. ls
    10. od
    11. sed
    12. wc
  2. C : CPU, GPU, obliczenia numeryczne, grafika, ...
  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. Julia
  11. Lisp - Common Lisp, Scheme, Clojure, Elisp, ...
  12. Lua
  13. OCaml
  14. Pascal
  15. Perl
  16. PHP
  17. Prolog
  18. Python
  19. 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
      3. wg ilości i złożoności danych
        1. małe zbiory
        2. średnie zbiory
        3. Big data
    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
        4. Vulkan API
  3. www
    1. Django
    2. PHP
  4. Grafika - komputerowe przetwarzanie obrazów
    1. GIMP
    2. gnuplot
    3. Processing
    4. WebGl
    5. WebCl
    6. ImageMagic
    7. 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
      2. Markdown
    4. Przetwarzanie tekstu w językach ogólnego przeznaczenia
      1. 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