Programowanie w systemie UNIX: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m →Budowanie programu: John L. Miller |
m →Wprowadzenie: mv |
||
Linia 4: | Linia 4: | ||
==Wprowadzenie== |
==Wprowadzenie== |
||
# [https://legacy.gitbook.com/book/97-things-every-x-should-know/97-things-every-programmer-should-know/details 97-things-every-programmer-should-know] |
|||
# [[Programowanie w systemie UNIX/Wstep|Wstęp]] |
# [[Programowanie w systemie UNIX/Wstep|Wstęp]] |
||
# dostęp |
# dostęp |
Wersja z 18:54, 9 gru 2018
Ten podręcznik opisuje podstawy programowania w Linuksie
Wprowadzenie
Języki programowania i narzędzia
- BASH
- C : CPU, GPU, obliczenia numeryczne, grafika, ...
- C++
- D
- Erlang
- Fortran
- Go
- Haskell
- Icon
- Java
- JavaScript
- Julia
- Lisp - Common Lisp, Scheme, Clojure, Elisp, ...
- Lua
- OCaml
- Pascal
- Perl
- PHP
- PostScript
- Prolog
- Python
- Ruby
- Rust
- swift
Metody/technologie/specjalistyczne programy
- Dane
- typy
- wg możliwości odczytu:
- Dane do odczytu maszynowego
- Dane do odczytu przez człowieka
- wg zawartości
- tekstowe
- numeryczne (liczbowe)
- obrazy
- wg ilości i złożoności danych
- małe zbiory
- średnie zbiory
- Big data
- wg możliwości odczytu:
- Bazy danych
- typy
- Pliki
- tekstowe
- binarne
- Obliczenia
- obliczenia symboliczne (CAS) i numeryczne (wektorowe (macierzowe), równoległe)
- Programy
- biblioteki
- The Inverse Symbolic Calculator (ISC): konwersja danych numerycznych do symbolicznych
- Statystyczne
- Obliczenia współbiezne, równoległe i rozproszone
- obliczenia symboliczne (CAS) i numeryczne (wektorowe (macierzowe), równoległe)
- www
- Grafika - komputerowe przetwarzanie obrazów
- tekst: obsługa biura / przetwarzanie tekstów / publikacje
- Pliki tekstowe, kodowanie i formatowanie
- WYSIWYG (ang. What You See Is What You Get – widzisz to, co dostajesz)
- LibreOffice, OpenOffice.org
- Emacs
- Vim
- Gedit
- języki znaczników
- Przetwarzanie tekstu w językach ogólnego przeznaczenia
Budowanie programu
- planowanie: sformułowanie problemu i opis algorytmu w języku naturalnym
- Dokumentacja kodu
- Formatowanie kodu (ang. indent)
- Kontrola wersji
- ręcznie lub łaty i diff
- scentralizowane
- rozproszone (zdecentralizowane)
- Git
- Mercurial
- Kompilacja, linkowanie, instalacja = budowanie. Jak zbudować program ze źródeł ?
- Ręczne (ang. "hand compilation", aka "manual build")
- Automatyczne: Narzędzia wspomagające budowę aplikacji
- Make = build system
- Apache Ant
- SCons
- Rake - Ruby Make
- Flex_i_Bison
- Pants, Apache Maven, gradle, sbt
- linkowanie (konsolidacja):
- ręcznie wpisana ścieżka [1]
- pkg-config
- zależności (ang. dependencies)
- Odpluskwiane (ang. debugging), testy bezpieczeństwa
- z użyciem printf " "printf is the world’s simplest debugger" John L. Miller in Quora
- gdb
- VAlgrind, memleax
- kcachegrind[2]
- grafy
- Dependency graph
- call graph
- Statyczna analiza kodu[3]
- testowanie
- optymalizacja (profilowanie)
- instalacja i odinstalowanie ( usuwanie) programów
- Praca grupowa