Liberix o.p.s. Free & Open Source software. Jazyky C, C++ Autotools. Jazyky Perl, Python, Ruby. Knihovny pro tvorbu oken.

Podobné dokumenty
Matematika v programovacích

Multiplatformní GUI toolkity

Instalace a konfigurace web serveru. WA1 Martin Klíma

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky Přehled a vývoj

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Nové jazykové brány do Caché. Daniel Kutáč

Linux na mobilních telefonech

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

IB111 Programování a algoritmizace. Programovací jazyky

IB111 Úvod do programování skrze Python Přednáška 13

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

PB071 Úvod do jazyka C

1 Nástroje pro správu verzí. 1.1 Pojmy:

IB111 Úvod do programování skrze Python Přednáška 13

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

C2184 Úvod do programování v Pythonu podzim Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita. Úvod.

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Úvod do programovacího jazyka Python

CPAN, tvorba a šíření softwaru v jazyce Perl. Petr Pajas Hejnice 2010

Free & Open Source software. Liberix. prezentací. Open Source. software. Free Software. projektů pro studenty. Rekapitulace. Liberix o.p.s.

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

BI-AWD. Administrace Webového a Databázového serveru Instalace webového serveru Apache httpd

Skriptovací jazyky. Obsah

Operační systémy Linux, Mac OS X a jejich srovnání

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Simluátor Trilobota. (projekt do předmětu ROB)

Server-side technologie pro webové aplikace

Úvod do programovacího jazyka Python

Linux pro uživatele. Arcibiskupské gymnázium v Praze 2

Objektově orientovaný přístup

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

úvod Historie operačních systémů

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

IT ESS II. 1. Operating Systém Fundamentals

Jaký programovací jazyk učit jako první a jak ho učit?

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

UNIVERZITA PARDUBICE PROJEKT MONO

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Střední odborná škola a Střední odborné učiliště, Hořovice

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Počítačová Podpora Studia. Přednáška 4. Nástroje pro vědecko-technické výpočty a zpracování dat. (v rámci PPS) PPS 2014

Jak funguje GNU/Linux

IUJCE 07/08 Přednáška č. 1

Úvod do jazyka C. Proč jazyk C

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Střední odborná škola a Střední odborné učiliště, Hořovice

Seznámení s prostředím dot.net Framework

ÚVOD DO UNIXU. Metodický list č. 1

Projekt implementace OS Linux do výuky informačních technologií

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Úvod do jazyka C. Zdroje: Herout: Učebnice jazyka C, Kopp, České Budějovice, 2001 Schildt H: Nauč se sám C, Softpress, Praha, 2001

11. Přehled prog. jazyků

Programovací jazyk univerzální notace pro zápis algoritmů, implementována.

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

99 % všech desktopů na platformě MS Windows

Úvod do Linuxu SŠSI Tábor 1

ŠKOLENÍ PROGRAMOVACÍHO JAZYKA JAVA JAVA - ZÁKLADY

TÉMATICKÝ OKRUH Softwarové inženýrství

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Monitorování sítě pomocí OpenWrt

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Chyby v prohlížečích, které v nich byly klidně deset let. Jiří Nápravník

EVOLUCE VÝVOJE SOFTWARE V PROSTŘEDÍ MICROSTATION

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Profesionální služby kolem Linuxu

GRAFICKÁ PROSTŘEDÍ GNU/LINUXU

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

A p a c h e h t t p d Lukáš Zapletal lukas.zapletal@liberix.cz

Pokročilé programování v jazyce C pro chemiky (C3220) Úvod do jazyka C++

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Vývoj software pro Linuxové distribuce. Installfest Praha,

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

PB071 Programování v jazyce C

O projektu Nasazení OpenOffice.org v praxi

Úvod. Programovací paradigmata

Podpora skriptování v Audacity

faktura, LaTeX, open source, freeware, Python, multiplatformní program

Středisko UN*Xových technologií

Algoritmizace- úvod. Ing. Tomáš Otáhal

3. Základy programovacího jazyka Java

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Olga Rudikova 2. ročník APIN

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Transkript:

Free & Open Liberix o.p.s. 14. 9. 2006

1 2 3 4 5 6 Obsah prezentace 7 8

jazyk C jako základ UNIXu a Linuxu, jazyk C++ se prosazuje na UNIXech pomaleji tyto jazyky jsou standardizovány institucemi ANSI (American National Standards Institute) a ISO (International Organization for Standardization) moderní aplikace pro X Window jsou často psány v C++ dostupné překladače C/C++ pro MS Windows: MS Visual C++, Borland C++, GCC (GNU Compiler Collection) Cygwin, Mingw, LLC, ICC (Intel C Compiler) a jiné dostupné překladače C/C++pro Linux: GCC (GNU Compiler Collection), ICC (Intel C Compiler) a jiné překladače jsou konzolové aplikace, patří k nim další nástroje jako je například GNU Makefile

GNU C Compiler ze sady GCC je odborníky označován za jeden z nejlepších kompilátorů jazyka C vůbec implementuje normy ISO (C89/C90, C99) a GNU rozšíření, lze libovolně přepínat GCC neobsahuje základní knihovnu jazyka C, je tedy potřeba knihovna GNU C (glibc) součástí systému pozor na rozšíření jazyka a knihoven firmy Microsoft, programátoři z Windows si musejí dát pozor na nekompatibility Objective-C alternativa k C++, vyšší flexibilita, nižší nároky na překladač, podpora ze strany firmy Apple (platforma Cocoa) literatura: Pavel Herout. Jazyk C. Nakl. Kopp. (2 díly)

GNU C++ Compiler ze sady GCC implementuje normu ISO/IEC 14882 z roku 1998 včetně úprav z roku 2003 a pozdějšího TR GCC neobsahuje základní knihovnu jazyka C++, je tedy potřeba knihovna The Standard GNU C++ Library (libstdc++) součástí systému velmi úspěšná je knihovna Boost (www.boost.org) Objective-C++ pouze syntaxe C++ k Objective-C (firma Apple) literantura: Bjarne Stroustrup. C++ Programming Language.

GNU Makefile slouží k sestavování libovolných projektů, ke kterým existuje nějaký překladač či program, který přijímá vstupní soubory jako své parametry lze ho využít nejen k programování, ale sestavování libovolných věcí (diplomová práce psaná v Latexu aj.) Makefile popisuje, jakým způsobem (jakými příkazy) se sestaví daný projekt, obsahuje závislosti mezi soubory, cesty ke knihovnám a zdrojům make příkaz, který provádí dané akce

Autoconf, Automake GNU make neřeší přenositelnost například funkce v jazyce C mají na různých systémech jiné názvy, jiné parametry, mohou být definovány v jiných hlavičkových souborech nebo linkovány do jiných knihoven make neřeší jednotný přístup k automatické konfiguraci softwaru (debug, release, další definice) programátoři z GNU projektů začali psát shell skripty, které se snažily uhodnout, jaké verze knihoven, hlavičkových souborů, funkcí je na daném systému to byl základ skriptů configure

Autoconf, Automake configure skript napsaný v shellu, který prohlédne systém a vytvoří config.h a soubor(y) Makefile pro celý projekt poté může uživatel spustit make, program sestavit a nainstalovat typický proces instalace balíčku s programem využívajícím configure skript: rozbalení, spuštění configure, make, make install skript configure vytváří obvykle následující cíle: all, install, uninstall, clean, distclean, check, dist instalace se provádí pomocí tzv prefixu (obvykle /usr/local)

Autoconf, Automake skript configure detekuje mnoho nastavení, ale dá se ovlivňovat parametry: prefix, CC, CCFLAGS, CXX, CXXFLAGS, LDFLAGS, CPPFLAGS a jiné (blíže pak configure help) configure také usnadňuje cross-compilation (parametry build, host, target), balíčkování, vnořené podprojekty configure skript nezačíná generovat config.h a Makefile od píky, ale předkládáme mu šablony (config.h.in, Makefile.in)

Autoconf, Automake configure je velice komplikovaný skript, tudíž se nevytváří přímo, ale je generován programem Autoconf Autoconf vytváří ze šablon configure.ac, Makefile.am šablony Makefile.in, config.h.in a samotný skript configure v souboru configure.ac definujeme, co má vygenerovaný soubor configure testovat a zjišt ovat (jaké knihovny, jaké má ověřit názvy funkcí) pro tyto účely se používá makrojazyk m4 autoreconf install vygeneruje configure a in šablony, nakopíruje několik podpůrných souborů (aclocal.m4, depcomp, missing, install-sh)

Autoconf nástroje autoconf vytváří configure z configure.ac autoheader vytváří config.h z configure.ac autoreconf spouští tyto nástroje ve správném pořadí (aclocal, autoconf, autoheader, automake) autoscan kontroluje projekt na chyby v přenositelnosti autoupdate aktualizuje makra v configure.ac ifnames sbírá makra #if/#ifdef autom4te srdce celého procesu, napsáno v m4

Automake - nástroje automake vytváří Makefile.in z Makefile.am a configure.ac aclocal vytváří aclocal.m4 pro configure.ac

Autoconf, Automake obvyklý postup: vytvoříme soubory configure.ac a Makefile.am, spustíme autoreconf install, při změně nějakého konfiguračního souboru pak spustíme příslušný nástroj, který přegeneruje potřebné ano, je to komplikované, ale takhle se to prostě dělá usnadňujete pak práci nejen vývojářům či uživatelům, ale také balíčkářům některé IDE prostředí jsou schopny s spolupracovat v Linuxu je na tom výborně například KDevelop (bohužel bývá někdy nestabilní a padá)

Autoconf, Automake možné alternativy: qmake, cmake (různé nadstavby make) SCons modulární sestavovací systém napsaný v Pythonu Apache Ant, Apache Maven napsané v Javě (ale široké použití) a mnoho dalších

v praxi stáhneme balíček se zdrojovým kódem, ten je již předpřipravený a je v něm vytvořen skript configure tar -xvzf program-1.0.0.tar.gz && cd program-1.0.0./confgure [parametry] (například prefix=/opt/program) make make install využijeme v případě, že chceme program upravovat, nebo když není dostupný binární balíček pro naši distribuci (vyšla například nová verze)

Bash Bourne Again Shell drtivá většina linuxových distribucí používá právě Bash, většina má startovací (a jiné) skripty napsány právě v Bashi Bash musí znát každý linuxový geek (administrátor), velice mocný nástroj zejména za pomoci filtrů (sed, head, tail...) jednoduchá ale velmi mocná syntaxe (popsána v manuálové stránce) funguje také na MacOS, Windows (Cygwin), DOSu (DJGPP) příklad: for f in ls *mp3 do oggenc f ; rmf; done

Perl Practical Extraction and Report Language (název vznikl jinak, ale toto je praktické) netypový jazyk, interpretovaný autor: Larry Wall (programátor, lingvista, autor programu patch) Perl najdete na každém UNIXu, současná verze Perl 5.8 přednosti: bohatá syntaxe, dostupnost, vestavěná (rychlá) implementace pro regulární výrazy, velký počet modulů (CPAN), vhodný na zpracování textu (logů atd), kvalitní dokumentace zápory: bohatá syntaxe, pomalejší interpret Perl 6 vyvíjí se od roku 2000, zatím se pracuje na VM (Parrot)

Python velmi úspěšný typový, objektově orientovaný jazyk, autor: Guido van Rossum nachází uplatnění při psaní webových aplikací (Google, Seznam.cz), desktop aplikací (BitTorrent) i krátkých skriptů či nástrojů (portage) podobně jako probíhá překlad do bytecode, existuje více intepreterů (CPython, JPython) klady: dobrá podpora OOP, přehlednost kódu, rychlá křivka učení, výborná knihovna, dobrá rozšiřitelnost, možnost imperativního přístupu zápory: nekonzistentní API Python 3 (neboli 3000) nebude zpětně kompatibilní, zatím vzdálená budoucnost (sběr požadavků)

PHP primitivní imperativní jazyk vznikl pro psaní skriptů vsazených do HTML (PHP: Hypertext Preprocessor) po jazycích C a zřejmě třetí nejoblíbenější jazyk (spolu s C++ a Visual Basicem) postupně se vypracoval z jazyku pro jednoduché dynamické stránky v jazyk s OOP podporou pro psaní větších webových aplikací (Zend, CakePHP...) výhody: velké rozšíření, snadnost nasazení, jednoduchá syntaxe, dobrá dokumentace a podpora nevýhody: beztypovost, nemá jmenné prostory, časté změny v jazyku, nekompatibility mezi verzemi

Další jazyky, C# budeme se věnovat podrobněji Ruby objektově orientovaný jazyk inspirovaný Perlem, Smalltalkem, Pythonem, úspěch jako jazyk pro psaní webů (Ruby On Rails) TCL vyslovujeme tikl, jednoduchý skriptovací jazyk, původně se používal pro CGI a pomocí toolkitu TK také pro psaní GUI aplikací (odtud TCL/TK),je velmi snadno rozšiřitelný a stále se používá jako například vsazený jazyk

Další jazyky AWK vyslovujeme ók, jakyk pro manipulaci s textem, možnost proudového zpracování, často se používá také s nástrojem SED (stream editor) LISP druhý nejstarší stále se používající jazyk (po Fortranu), funkcionální (ale také procedurální a objektově orientovaný), derivátem je například Scheme, využití jako vsazený jazyk, ve výzkumných ústavech, na školách ale také prakticky (Emacs) další jazyky dostupné na Linuxu: Smalltalk, Fortran, Cobol, Algol, Pascal, BASIC nebo i assembler (gas, nasm)

Toolkity GTK+ hlavní knihovna nad kterou je postaveno GNOME, jazyky C, C++,.NET,, skriptovací jazyky, používá jej například Mozilla QT hlavní knihovna nad kterou je postaveno KDE, dříve komerční, poté komerční jen pro Windows, dnes svodobná (Trolltech prodává EmbeddedQT pro malá zařízení) TK jednodušší toolkit, není tak hezký FLTK/FOX odlehčené toolkity, také nevypadají příliš hezky, ale nečerpají příliš systémových prostředků Motif historická záležitost (Solaris), open-source implementace Lesstif

Toolkity wxwidgets vysokoúrovňový toolkit, multiplatormní, na Windows používá MFC, na Unixech GTK+ nebo Motif, na MacOS zase Cocoa XUL pro produkty Mozilly, opět vysokoúrovňové API, postaveno nad GTK+, MVC přístup AJAX hit dnešních dnů toolkity pro vytváření webových aplikací jako desktopových aplikací: Google Web Toolkit, DoJo Toolkit, Tibco General Interface pokud neznáte, zkuste například stránky projektu http://dojotoolkit.org (jsou tam dema) nebo vynikající Jabber/ICQ/MSN webový klient: http://www.meebo.com

poskytuje nezbytný pro vývoj a spouštění.net aplikací na Linuxu, Solarisu, MacOSu, Windows a UNIXu, projekt sponzorován Novellem, samozřejmě Open je multiplatfomní implementací podle ECMA/ISO standardů, podporuje.net 1.2 (verze 2.0 se dokončuje), je možné kompilovat jazyky C#,, Python, Boo (jakýsi fork Pythonu pro.net) mono VM, mcs kompilátor, Develop vývojové prostředí, zatím nestabilní (betaverze)

drtivá většina jmenného prostoru System je již implementována, nicméně zatím chybí hodně dokumentace (u mnoha tříd najdete na stránce http://www.go-mono.com/docs/ pouze To be added. ) k dispozici jsou kromě standardních tříd také: GTK# (Cocoa#, Windows.Forms zatím se implementuje, musí se zčásti emulovat),.tao (OpenGL),.Directory (LDAP a spol),.data (databáze),.cairo (2D rendering),.posix,.remoting (CORBA, sockety, unixové sockety),.http,.xml... v současné době je asi nejlepší psát desktopové aplikace pomocí toolkitu GTK#, existuje také poměrně stabilní podpora pro psaní ASP.NET aplikací pomocí Apache modulu mod mono (1.1, verze 2.0 je ve vývoji) aplikace psaná pro.gtk pojede i na Windows (a jinde)

mono hodně sponzoruje Novell (staví na něm některé své aplikace) platformu.net se snaží prosazovat také pracovní prostředí GNOME (do nových verzí už se dostalo několik aplikací psaných v.netu) ačkoli Develop ještě stabilní není, virtuální mašina je dostatečně stabilní (jede v ní například prostředí Eclipse) namátkou aplikace: F-Spot, Tomboy, Blam, Beagle, Muine, ifolder také běží na Nokii 770

vynikající platforma pro vývoj multiplatformních aplikací se usídlila na serverech (kde dominuje) postupně proniká i na pracovní plochy uživatelů v Linuxu je stejně dobrá nabídka vývojových nástrojů, knihoven a aplikací v Javě, jako na Windows praktické ukázky: Eclipse IDE, Netbeans IDE, IntelliJ IDEA představení Rich Client Platforms: Eclipse, Netbeans

systémy pro správu verzí dělíme na nedistribuované (centrální repozitář RCS/CVS, Subversion, Rational/IBM ClearCase, Preforce, MS Safe) a distribuované (GIT, GNU Arch, Bazaar, Darcs, tone) základní pojmy: repozitář, checkout, checkin (commit), update, conflict, resolve, revision, tak, branch, version budete mít na zvláštní prezentaci (Mgr. Jan Outrata) nástroje diff a patch zasloužily se o úspěch Open

C/C++ standardní jazyky v Linuxu machinery skriptovací jazyky (Perl, Python, PHP).NET pro Linux a jiné systémy (vč. Windows) také skvělá volba