HOME > HOWTO > PROGRAMOVÁNÍHOWTO

Skriptovací programovací jazyky

2. Květen 2001, 00:00 (6506x zobrazeno)

Programovací jazyky lze dělit podle mnoha kritérií. Asi nejběžnější jsou tato dělení:

Jazyky interpretované a jazyky kompilované

Interpretované jazyky překládá interpret až v době jejich spuštění, zatímco kompilované jazyky jsou ihned přeloženy kompilátorem do strojového kódu.

Zásadní rozdíl je ten, že interpretované jazyky produkují pomalejší programy, ale vývoj je zpravidla rychlejší (odpadá fáze kompilace a sestavování).

Samozřejmě že každý jazyk může mít jak interpretovanou, tak i kompilovanou podobu (např. Basic), v praxi se ale většinou setkáme pouze z jednou z variant.

Typickými kompilovanými jazyky jsou C, C++, Pascal a další.

Naopak mezi interpretované jazyky je možné zařadit Javu, Perl, Lisp, Scheme, Python, PHP, Tcl nebo Prolog. V této kategorii je ještě třeba zvlášť odlišit jazyky, které jsou při spuštění přeloženy do jakéhosi mezi-kódu, který pak interpret zpracovává mnohem rychleji, než původní kód. Sem patří zejména Java a Perl. Také velká většina aplikačních jazyků je interpretována.

Jazyky imperativní a ty ostatní

Imperativní jazyky jsou v podstatě posloupnosti příkazů, které jsou vykonávány jeden po druhém. Patří sem většina jazyků, které znáte - tento způsob programování je totiž blízký lidskému uvažování a řešení problémů. Patří sem tedy např. C, Pascal, Perl, Java a další.

Druhou skupinou jsou tzv. jazyky funkcionální. Zde je celý algoritmus zapsán pomocí funkcí a nejčastější programovou strukturou je rekurze. Typickými zástupci jsou Lisp a Scheme. Tyto jazyky jsou velice často používány jako jako aplikační (emacs, Gimp).

Poslední skupina jsou jazyky podporující logické programování. Vyznačují se tím, že definujeme pouze známá fakta a cíl, kterého chceme dosáhnout. Typickým zástupcem je Prolog. Tyto jazyky se zatím příliš nerozšířili a zůstávají pouze zajímavou hračkou (osobně si nedovedu představit textový editor napsaný v Prologu ;-).

Jazyky skriptovací a ty ostatní

Skriptovací jazyky nejsou jen na psaní skriptů, jak by mohl napovídat jejich název. Patří sem zejména Perl, Python, PHP nebo Tcl. Dá se říci, že je-li jazyk skriptovací, je také interpretovaný a je-li jazyk interpretovaný, je skoro vždy, až na výjimky, jazykem skriptovacím. Touto výjimkou je například Java.

Skriptovací jazyky jistě neprodukují superrychlé programy, ale zde nejde o efektivitu kódu, jako spíše o efektivitu programování. Tyto jazyky totiž dovádějí výhody interpretovaných jazyků ještě dále.

Programování ve skriptovacích jazycích je opravdu velice snadné. nemusíte se starat o deklarace proměnných. Většinou zde totiž neexistuje typová kontrola a tak proměnné, která obsahuje řetězen můžete bez problémů přiřadit číselnou hodnotu. Můžete velice snadno převádět řetězce na čísla a naopak. Můžete bez obav použít neinicializovanou proměnnou a spolehnout se na to, že bude mít přednastavenu nulovou hodnotu. Všechny tyto věci sice nemají nic společného s dobrými programátorskými zvyky, ale neuvěřitelným způsob usnadňují psaní programů.

Další specialitou jsou vyšší datové typy. Patří sem třeba různé výčtové typy a nebo tzv. asociativní pole. Ty umožňují vytvořit pole, kde se místo číselného indexu využívá řetězec.

Velice silnou zbraní těchto jazyků bývá zpracování textu (a to je pro změnu velice častý úkol v mnoha programech). Zpravidla se k tomu využívají tzv. regulární výrazy. Umožňují snadno spouštět externí programy a zpracovávat jejich výstup a vyznačují se také velkou přenositelností.

Podívejme se nyní na některé skriptovací jazyky trochu podrobněji.

Perl

Je jednoznačně nejznámější a nejrozšířenější skriptovací jazyk. Umožňuje téměř vše: můžete psát jednoduchá aplikace obsluhované z příkazové řádky, aplikace pro X Window a nebo třeba CGI skripty. Vyznačuje se obrovskými vyjadřovacími schopnostmi - často na úkor čitelnosti a přehlednosti. Díky tomu je mnohými zatracován, zatímco jiní na něj právě díky těmto schopnostem nedají dopustit.

O jeho popularitě svědčí i obrovské množství rozšiřujících modulů. Asi se vám jen stěží povede najít něco, pro co ještě není vytvořen modul do Perlu: k dispozici jsou implementace všech možných síťových protokolů, jak klientská, tak i serverová část. Můžete přistupovat do databází (to je zde velice pěkně, transparentně vyřešeno), zpracovávat různé formáty souborů (RTF, XLS, HTML, PDF) a další a další.

Objevují se i rozšíření snažící se napodobit PHP, tj. umístit do jednoho souboru kód i statickou část www stránky (HTML).

Máte k dispozici asociativní pole, výčtový typ, objektově orientované programování. Jazyk obsahuje garbage collector, tj. automaticky uvolňuje obsazenou paměť apod.

Python

Má zhruba stejné možnosti jako Perl. jeho kód je ale mnohem čitelnější a čistější. Zdaleka není ale tolik populární, jako Perl. I pro Python existuje velké množství modulů, podporuje objektově orientované programování, asociativní pole a další...

PHP

Tento jazyk se stal populární zejména díky možnosti integrovat ho přímo do HTML stránky. Lze tak snadno vytvářet webové aplikace, v jednom zdrojovém souboru se kombinuje statická část stránky spolu s výkonným kódem. Paradoxně právě tato schopnost začala mnoha lidem vadit a jsou vyvíjeny různé šablony apod., snažící se co nejvíce tyto dvě části oddělit. Přijde mi to nesmyslné a zbytečné, vezmete-li PHP tuto výhodu, není nic, čím by předčil Perl nebo Python.

Regulární výrazy jsou zde používané ve srovnání s Perlem poněkud těžkopádně, objektově orientované programování je zde pouze v plenkách. Velice nešikovně je zde vyřešeno rozhraní k databázím: pro každou databázi existuje jiná sada funkcí, což při změně databáze znamená přepsat celý kód.

PHP velice dobře podporuje HTML formuláře a jeho interpret bývá přilinkován přímo do populárního webového serveru Apache (tuto schopnost má ale i Perl a Python), čímž se zajišťuje vysoká rychlost zpracování skriptů.

Tcl

Sláva tohoto jazyka už pomalu upadá, ale stále je velice rozšířený. Stal se populární díky grafické knihovně Tk (Tcl/Tk), pomocí které lze snadno vytvářet přenositelné aplikace běžící v grafickém prostředí (unixové X Window, Microsoft Windows a nebo MacOS). Jeho syntaxe je trochu odlišná od výše uvedených jazyků. Podporuje asociativní pole, velice pěkně je vyřešena práce se seznamy.

Jazyky příkazových interpretů

Sem patří například bash nebo DCL (Digital Command Language používaný v systémech OpenVMS). Tyto jazyky se většinou specializují zejména na spouštění jednotlivých programů. Skript napsaný třeba v bashi je tak v podstatě složen z volání externích programů, mezi kterými jsou přenášena získaná data. Příkazový interpret najdeme i v DOSu, ale ten má velice omezené možnosti.

autor: Ing. Jiří Václavovič

Líbil se vám článek?

5 (6x hodnoceno)12345

Komentáře

jarka - 31. březen 2011, 9:49
skript v tomto filmu

poradíte mi?syn navštívil stránky www.lego.com a od té doby se mi všechno načítá velmi pomalu,několikrát mi naskočila tabulka,kde je psáno:skript v tomto filmu způsobuje,že počítač pracuje zpomaleně,pokud jej nevypnete pc může přestat reagovat,chcete jej vypnout_ Ano-Ne,vždy odkliknu Ano a stejně se nic neděje,jede to pořád stejně,co s tím?poradíte?Jarka

HACKER SITES  SEZNAMKA PRAHA  LUHILL DESIGN WEAR  STREET Wear LuHill PRAGUE  www.czfree.net  Hack This Page  RYCHLE RANDE V PRAZE  DETSKA SKOLKA - STODULKY - PRAHA 13  www.BASTARDSERVERS.com  DEBIAN GNU LINUX 
www.blackhole.cz  www.linux.sk  www.abclinuxu.cz  www.underground.cz  www.zi.cz  SEZNAMKY PRAHA - RYCHLORANDE  www.linuxzone.cz  www.root.cz  www.penguin.cz  www.krypta.cz 
HACKER T SHIRTS  RYCHLE SEZNAMOVANI  HELL toplist  www.BASTARDSERVERS.com  G$BIT SERVERS  geek music  www.soom.cz  TRICKA A MIKINY PRAHA  HackThisPage  BABBY SITTING - BABY DAY CARE- PRAHA 13 
GEEK T-SHIRTS  BABYSITTING PRAHA 13  photopost.cz  apsara.cz  RANDIX HLIDANI DETI V PRAZE  sport, outdoor, cyklo obchod  dfklub.cz  www.zi.cz  Moderni seznamovaci agentura RANDIX  DETI - HLIDANI