Skriptovací jazyk: Porovnání verzí

Přidáno 70 bajtů ,  před 9 lety
Celkově předěláno a rozšířeno
({{Přesunout|Skriptovací jazyk}})
(Celkově předěláno a rozšířeno)
{{Přesunout|Skriptovací jazyk}}
 
'''Skriptovací jazyk''' je [[Interpret (software)|interpretovaný]] [[programovací jazyk]], který je navržen s ohledem na snadné ovládnutí jazyka a rychlý a pohodlný vývoj programů. K typickým zástupcům skriptovacích jazyků se počítají například [[Python]], [[PHP]], [[JavaScript]], [[Perl]], [[Tcl]], [[Ruby (programovací jazyk)|Ruby]]. Také [[unixový shell]] je možno považovat za skriptovací jazyk. Skriptovací jazyky se často využívají v prostředí [[webová aplikace|webových aplikací]].
'''Skript''' je v [[Informatika|informatice]] [[zdrojový kód]] programu, který je tzv. interpretován, tj. čten a vykonáván za běhu speciálním procesem, tzv. [[interpret (software)|interpretem]].
 
== Skripty ==
Jakožto programový kód, je i skript vytvořen v [[programovací jazyk|programovacím jazyku]] (hovoří se o tzv. ''skriptovacím jazyku''), který má přesně stanovenou [[Formální gramatika|formální gramatiku]] (tj. pravidla, syntaktické elementy, jazykové konstrukty atd).
Program zapsaný ve skriptovacím jazyce se označuje jako '''skript'''. Typicky skript těží z výhody, že se nemusí překládat, a často tvoří rozšiřitelnou (parametrickou) část nějakého softwarového projektu, která se může měnit, aniž by bylo potřeba pokaždé rekompilovat hlavní spustitelný soubor. Tak skripty najdeme u her, složitějších softwarových řešení nebo jako hlavní součást dynamických internetových stránek a podobně.
 
Některé [[programovací jazyk]]y mají možnost kompilace do strojového kódu i interpretace; jiné umožňují i mezistupeň, předkompilování do vnitřního jazyka, jehož vykonávání je rychlejší než klasická interpretace. Například programy v jazyku [[QBasic]] splňují kritéria skriptů, ale obecně se považují za programy. Hranice mezi takovými programy a skripty tedy není zcela ostrá.
Typicky skript těží z výhody, že se nemusí překládat, a často tvoří rozšiřitelnou (parametrickou) část nějakého softwarového projektu, která se může měnit, aniž by bylo potřeba pokaždé rekompilovat hlavní spustitelný soubor. Tak skripty najdeme u her, složitějších softwarových řešení nebo jako hlavní součást dynamických internetových stránek a podobně.
 
Úroveň skriptů a jejich jazyků se může velice lišit. Některé skriptovací jazyky (např. [[Python]] nebo [[PHP]]) nabízejí finesy jako třeba [[objektově orientované programování]]. Na druhou stranu, jiné soubory, které obsahují toliko konfigurační parametry jiného programu, mohou být též označovány jako skripty. Většinou by ale skriptovací jazyk měl být alespoň na takové úrovni, aby dovoloval pracovat s proměnnými nebo umožňovat větvení programu.
Protikladem k interpretovanému kódu je program přeložený ([[kompilace|kompilovaný]]) do [[Strojový kód|strojového kódu]].
 
== Charakteristické vlastnosti ==
Návrh skriptovacího jazyka často zohledňuje rychlý vývoj programu a tak umožňujíobsahují některé prvky, které v překládaných jazycích většinou nenajdeme. Jedná seK napříkladnim opatří:
* [[Typová kontrola#Dynamická typová kontrola|Dynamická typová kontrola]].
* automatickéAutomatické nastavení hodnot u nedefinovaných proměnných a konstant,.
* zotaveníZotavení z chyb, které neústí v ukončení skriptu.
* Pokročilé datové typy, zejména asociativní pole.
* Zabudovaná podpora pro zpracování [[regulární výraz|regulárních výrazů]].
 
== Výhody ==
* Není nutné mít nainstalovaný kompilátor a provádět po každé změně kódu [[kompilace|kompilaci]].
* Snadnější údržba, vývoj a správa kódu.
* Některé skripty umožňují interpretaci kódu z řetězce (jakofunkce napříkladtypicky funkce [http://cz.php.net/manual/en/function.eval.phppojmenovaná <tt>eval()</tt>] v [[PHP]]). Něco takového překládané programy z principu nedokáží.
* Interprety populárních skriptovacích jazyků jsou dostupné pro všechny důležité platformy.
* Interpret obvykle poskytuje programátorovi zabudovaný [[abstraktní datový typ]] [[asociativní pole]].
 
== Nevýhody ==
* RychlostNižší rychlost. Interpretace stojí určitý strojový čas a nikdy nebude tak rychlá jako spouštění přeloženého (a optimalizovaného) programu.
* O trochu vyšší paměťová náročnost. Interpret musí být spuštěn a tedy zabírá určitou operační paměť.
* Skriptovací jazyky mají většinou větší omezení než překládané programovací jazyky (např. co do přístupu do paměti, ovládání tzv. [[Handle|rukojetí]] procesů a kontextových zařízení apod).
* Snadné zavlečení některých chyb a jejich obtížné odhalování (důsledek automatické inicializace a dynamického typování).
 
== Typické znaky skriptů ==
Návrh skriptovacího jazyka často zohledňuje rychlý vývoj programu a tak umožňují některé prvky, které v překládaných jazycích nenajdeme. Jedná se například o:
* [[netypová proměnná|netypové proměnné]],
* automatické nastavení hodnot u nedefinovaných proměnných a konstant,
* zotavení z chyb, které neústí v ukončení skriptu.
 
== Podoba skriptů ==
Některé [[programovací jazyk]]y mají možnost kompilace do strojového kódu i interpretace; jiné umožňují i mezistupeň, předkompilování do vnitřního jazyka, jehož vykonávání je rychlejší než klasická interpretace. Například programy v jazyku [[QBasic]] splňují kritéria skriptů, ale obecně se považují za programy. Hranice mezi takovými programy a skripty tedy není zcela ostrá.
 
Úroveň skriptů a jejich jazyků se může velice lišit. Některé skriptovací jazyky (např. [[Python]] nebo [[PHP]]) nabízejí finesy jako třeba [[objektově orientované programování]]. Na druhou stranu, jiné soubory, které obsahují toliko konfigurační parametry jiného programu, mohou být též označovány jako skripty. Většinou by ale skriptovací jazyk měl být alespoň na takové úrovni, aby dovoloval pracovat s proměnnými nebo umožňovat větvení programu.
 
Také [[unixový shell|unixové shelly]] je možno považovat za skriptovací jazyky. Skriptovací jazyky se často využívají i v prostředí [[webová aplikace|webových aplikací]]. Příklady skriptovacích jazyků jsou: [[Python]], [[PHP]], [[JavaScript]], [[Perl]], [[Tcl/Tk]], [[Ruby (programovací jazyk)|Ruby]] atd.
 
== Související články ==
* [[Dávkový soubor]]
* [[Shellový skript]]
 
== Externí odkazy ==
* [http://reboot.cz/howto/programovani/skriptovaci-programovaci-jazyky/articles.html?id=153 Skriptovací programovací jazyky] (Jiří Václavovič)
 
[[Kategorie:Programování]]