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. ssh
    13. wc
  2. C : CPU, GPU, obliczenia numeryczne, grafika, ...
  3. C++
  4. D
  5. Fortran
  6. Go
  7. Haskell
  8. Icon
  9. Java
  10. JavaScript
  11. Julia
  12. Lisp - Common Lisp, Scheme, Clojure, Elisp, ...
  13. Lua
  14. OCaml
  15. Pascal
  16. Perl
  17. PHP
  18. Prolog
  19. Python
  20. 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 format
    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. Formatowanie kodu ( ang. indent )
  4. Kontrola wersji
    1. zcentralizowane
      1. Subversion
      2. CVS
    2. rozproszone ( zdecentralizowane )
      1. Git
      2. Mercurial
  5. 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
  6. linkowanie ( konsolidacja ) :
    1. ręcznie wpisana ścieżka [1]
    2. pkg-config
  7. Odpluskwiane (ang. debugging), testy bezpieczeństwa
    1. z użyciem printf
    2. gdb
    3. VAlgrind
    4. kcachegrind[2]
    5. Statyczna analiza kodu[3]
      1. cppcheck
      2. lint
      3. stack [4]
      4. kint [5]
      5. sparse [6]
  8. testowanie
  9. optymalizacja ( profilowanie )
    1. gprof
  10. instalacja programów
  11. Praca grupowa
    1. Jak rozwijać gotowe projekty ?
    2. Jak zadawać pytania ?

Literatura[edytuj]

  1. Literatura