Skriptovací jazyk: přehled, vlastnosti a použití
Přehled skriptovacích jazyků: co jsou skripty, hlavní vlastnosti, historie, běžné oblasti použití a rozdíly vůči kompilovaným a univerzálním jazykům.
Úvod
Skriptovací jazyk je druh programovacího jazyka určeného primárně pro psaní skriptů — krátkých automatizovaných programů, které vykonávají sekvence kroků místo zásahu člověka. Termín často odkazuje na jazyky, které usnadňují rychlý vývoj, interpretaci a integraci do větších aplikací; viz obecná definice a pojetí pojmu. Skripty jsou zpravidla jednodušší než rozsáhlé aplikace a slouží k opakovatelným úlohám, zpracování dat nebo řízení jiného softwaru.
Galerie obrázků
1 ObrázekCharakteristika a části
Skriptovací jazyky obvykle poskytují snadnou syntaxi, dynamické typování a přímý přístup k funkcím hostitelského prostředí. Jsou interpretované nebo spouštěné v rámci jiného programu, což usnadňuje okamžité testování a ladění. Skript může být nezávislý soubor nebo integrován do aplikace (např. makra, pluginy). Pro základní představu si představte klasický program, který by místo manuálních kroků vykonal řadu příkazů automaticky.
Typická prostředí a příklady
Skripty běžně fungují uvnitř hostitelských aplikací: v webových prohlížečích (client-side), v kancelářských balících jako Microsoft Excel (makra a automatizace), nebo v příkazové řádce a shellech pro správu systému. Mnohé skripty se spouštějí z příkazového řádku a využívají služby operačního systému ke spouštění procesů a práci s I/O. Používají se také při údržbě velkých systémů, například na mainframech a na serverech, kde automatizují zálohy, nasazení a monitorování.
Využití a příklady scénářů
- Automatizace opakovaných administrativních úkolů (zpracování souborů, plánované úlohy).
- Rozhraní a skriptování v rámci aplikací (makra, rozšíření).
- Prototypování a testování částí větších systémů díky rychlému cyklu editace/spuštění.
- Integrace různých nástrojů a služeb v rámci pracovních postupů DevOps a správy infrastruktury.
Historie a vývoj
Skriptovací jazyky vznikaly jako nástroje pro zjednodušení opakovaných činností a propojování programů. Postupem času se vyvinuly z jednoduchých skriptovacích jazyků shellů a makro systémů do plnohodnotných jazyků s rozsáhlými knihovnami a runtime prostředími. Současné jazyky často překračují původní omezení skriptů a poskytují možnosti, které dříve patřily výhradně kompilovaným jazykům.
Rozdíly a významné poznámky
Neexistuje striktní hranice mezi „skriptovacím“ a „programovacím“ jazykem. Někteří autoři považují za skriptovací jazyky pouze ty vázané na konkrétní hostitelské prostředí, zatímco jiní širší pojetí zahrnuje i univerzální jazyky, které jsou typicky interpretované místo kompilovaných. Příkladem je rozdíl mezi tradičním Java (kompilovaná) a jazykem jako JavaScript, který vznikl jako skriptovací jazyk pro prohlížeče; obě paradigmata mohou však dnes splývat a vzájemně se ovlivňovat, stejně jako historická role Java a jejích ekosystémů.
Závěr
Skriptovací jazyky zůstávají důležitým prvkem softwarového vývoje i správy systémů díky své schopnosti rychlé automatizace, jednoduchosti a snadné integrace. Jejich role se vyvíjí spolu s nároky na automatizaci, bezpečnost a škálovatelnost v moderních provozech a aplikacích.
Příklady
Některé běžné příklady skriptovacích jazyků:
- Bash a C shell jako ovládací jazyky pro operační systémy Unix nebo Unixu podobné.
- Skripty, které se spouštějí uvnitř jiných aplikací, se nazývají rozšiřující jazyk. Webové prohlížeče umožňují několik druhů skriptů, včetně ECMAScriptu (JavaScript) nebo XUL. Například domovská stránka Google používá JavaScript. Uvnitř sady Microsoft Office se používá Visual Basic for Applications. Jazyk Lua je záměrně vytvořen jako rozšiřující jazyk a lze jej používat v rámci mnoha aplikací.
- Mezi hry, které mají skriptovací rozšíření, patří virtuální svět Second Life a železniční simulátory Trainz. V jiných hrách, jako je Wesnoth, tvoří řadu skutečných her skripty napsané jinými uživateli.
- Jazyky pro zpracování textu sed a AWK
- Obecné použití: Perl, Tcl a Python jsou vysokoúrovňové programovací jazyky (bližší lidskému jazyku než strojovému kódu), které lze použít k mnoha různým účelům. Některé z těchto jazyků byly nejprve vytvořeny pro konkrétní použití a poté byly změněny na jazyky pro všeobecné použití.
Vlastnosti
Většina skriptovacích jazyků je vytvořena tak, aby se dala snadno naučit. Často se jedná buď o krátké soubory se zdrojovým kódem, nebo se zadávají po jednom příkazu v rozhraní příkazového řádku, které má smyčku čtení-vyhodnocení-tisk (REPL, language shell). To obvykle znamená jednoduchou sadu příkazů. Nemusí existovat funkce ani main, prostě se spustí od začátku do konce. Pokud něco nefunguje, může programátor provést rychlé změny a spustit to znovu. Díky tomu je skriptovací jazyk vhodný pro vytvoření rychlého prototypu, aby se zjistilo, zda nějaký nápad funguje.
Většina lidí například nenazývá Javu skriptovacím jazykem kvůli její zdlouhavé syntaxi a pravidlům o tom, které třídy existují v kterých souborech, a protože Javu nelze interaktivně spouštět v REPL. Potřebuje soubory se zdrojovým kódem a ty mohou obsahovat pouze definice, které musí být použity hostitelskou aplikací nebo spouštěčem aplikací. (Java není totéž co JavaScript).
Python však umožňuje volbu - funkce lze umístit do souboru, lze jej spustit bez funkcí a použít imperativní styl programování, nebo jej dokonce používat interaktivně (psát a spouštět po řádcích).
print ("Hello World")
Tento jediný řádek kódu Pythonu vypíše "Hello World"; není potřeba žádná funkce main() ani nic jiného.
Skriptovací jazyk je obvykle interpretován ze zdrojového kódu nebo bajtkódu. Něco však musí skript spustit (interpretovat), aby mu počítač rozuměl. To je aplikace nebo něco v operačním systému. Ta je často napsána v kompilovaném jazyce a distribuována ve formě strojového kódu (jako spustitelný soubor, který člověku nedává smysl).
Skriptovací jazyky mohou být navrženy tak, aby je mohli používat lidé, kteří program používají - vývoj pro koncové uživatele. Jindy je mohou vytvářet programátoři pro vlastní potřebu. Skriptovací jazyky často používají abstrakci, což je forma skrývání informací. To znamená, že uživatelé nemusí znát podrobnosti o typech proměnných, ukládání dat a správě paměti.
Skripty často vytváří nebo mění osoba, která je provádí, ale některé jsou sdíleny nebo prodávány jiným osobám. Například když jsou velké části her napsány ve skriptovacím jazyce. Někdy může být skript zkompilován předtím, než jej začnou používat ostatní. Jakmile je jednou zkompilován, běží rychleji a nepotřebuje ke svému spuštění další aplikaci. A tím se zabrání koncovým uživatelům ve změně kódu.
Historie
První sálové počítače (v 50. letech 20. století) nebyly interaktivní, ale používaly skripty uložené v dávkových souborech. Běžným příkladem skriptovacího jazyka používaného k řízení dávkového zpracování je jazyk JCL (Job Control Language) společnosti IBM.
První interaktivní skořápky byly vytvořeny v 60. letech 20. století, aby usnadnily vzdálené ovládání prvních systémů pro sdílení času. Ty používaly shellové skripty, které mohou spouštět počítačové programy v rámci počítačového programu, shellu. Calvinu Mooersovi se v jeho jazyce TRAC obecně připisují zásluhy za vynález nahrazování příkazů. Ta umožňuje příkazům měnit skript (samomodifikující se kód). Multics tyto příkazy nazývá aktivní funkce. Louis Pouzin napsal kolem roku 1964 pro CTSS raný procesor pro příkazové skripty nazvaný RUNCOM. Stuart Madnick z MIT napsal v roce 1966 skriptovací jazyk pro CP/CMS společnosti IBM. Původně tento procesor nazval COMMAND, později jej pojmenoval EXEC. Multics obsahoval odnož CTSS RUNCOM, rovněž nazvanou RUNCOM. EXEC byl nakonec nahrazen EXEC 2 a REXX.
Jazyky jako Tcl a Lua byly od počátku vytvářeny jako univerzální skriptovací jazyky, které lze použít v jakékoli aplikaci. Jiné jazyky, jako například Visual Basic for Applications (VBA), uměly mnoho podobného, ale musely pracovat pouze s určitými aplikacemi. Použití univerzálního skriptovacího jazyka namísto vytváření nového jazyka pro každou aplikaci obvykle usnadňuje práci jak osobě, která píše aplikaci, tak uživateli, který píše skripty.
Typy skriptovacích jazyků
Jazyky lepidla
Skriptování se někdy používá k propojení různých aplikací. Tomu se říká slepený kód a jazyk vytvořený právě pro tento účel je slepený jazyk. Běžným příkladem spojovacích jazyků jsou pipeline a shell skriptování. Pokud je však ve skriptovacím souboru zapsáno velké množství logiky, je lepší o něm uvažovat jako o prosté další softwarové aplikaci, nikoli jako o "lepidle".
Lepicí jazyky jsou užitečné zejména při psaní a údržbě:
- vlastní příkazy pro příkazový řádek;
- menší programy než ty, které jsou lépe implementovány v kompilovaném jazyce;
- "obalové" programy, které provádějí některé automatizované činnosti před nebo po spuštění aplikace, jako je tabulkový procesor, databáze, překladač atd.;
- skripty, které se mohou často měnit;
Příklady jazyka lepidla:
- AppleScript
- awk
- JCL
- Lua
- m4
- Perl
- Skripty Unix Shell (ksh, csh, bash, sh a další)
- VBScript
- Jazyk pracovních toků
- Prostředí Windows PowerShell
- XSLT
Zařízení, jako jsou programovatelné kalkulačky, mohou mít také vlastní lepicí jazyky. Například kalkulátor Texas Instruments TI-92 lze z výroby naprogramovat pomocí jazyka příkazových skriptů. Kalkulačka TI-NSpire rozumí jazyku Lua. Jiné rozumějí nějakému jazyku Basic nebo třeba Lisp či něčemu jinému.
Jazyky pro řízení úloh a shelly
Tato skupina pochází z automatizace řízení úloh, která se týká spouštění a řízení chování systémových programů, počínaje JCL společnosti IBM. Mnoho interpretů těchto jazyků funguje také jako interprety příkazového řádku, například unixový shell nebo MS-DOS COMMAND.COM. Jiné, jako například AppleScript, nabízejí použití příkazů podobných anglickým pro vytváření skriptů.
Skriptování grafického uživatelského rozhraní
Při tvorbě grafických uživatelských rozhraní je nutné je testovat. Byly vytvořeny specializované skriptovací jazyky, které umožňují ovládat grafická okna, nabídky, tlačítka atd. stejně jako lidský uživatel. Mnohdy lze pomocí nich přesně kopírovat to, co dělá člověk (pohyb myší, klikání nebo psaní na klávesnici). Takováto zkopírovaná a zapamatovaná akce nebo sada akcí se nazývá makro.
Jazyky specifické pro aplikace
Mnoho velkých aplikací obsahuje skriptovací jazyk vytvořený právě pro tuto aplikaci. Aplikace může být hra nebo obchodní program. Tento typ jazyka je vytvořen pro jednu aplikaci. Tváří se jako univerzální jazyk (např. QuakeC, po vzoru jazyka C), mají vlastní vlastnosti, které je odlišují.
Jazyky, které lze rozšířit/začlenit
Jedná se o podobný skriptovací jazyk, který ovládá aplikaci, ale lze jej použít v mnoha aplikacích.
JavaScript vznikl jako jazyk pro skriptování ve webových prohlížečích, ale nyní je to univerzální jazyk pro vkládání. Používá se také například v produktech společnosti Adobe.
Některé jazyky časem přecházejí z jednoho typu na druhý, obvykle s tím, jak přibývají další možnosti.
Otázky a odpovědi
Otázka: Co je to skriptovací jazyk?
Odpověď: Skriptovací nebo skriptovací jazyk je programovací jazyk, který podporuje skripty.
Otázka: Co jsou to skripty?
A: Skripty jsou obvykle krátké počítačové programy, které provádějí kroky, jež by mohl člověk provést jeden po druhém.
Otázka: Proč jsou skripty užitečné?
Odpověď: Automatizují práci, aby byla jednodušší a spolehlivější.
Otázka: Je obtížné naučit se skriptovací jazyk?
Odpověď: Skriptovací jazyk je často jednodušší jazyk, který se učí snadněji než jiné jazyky, ale přesto dokáže mnoho věcí.
Otázka: Kde se mohou skripty spouštět?
Odpověď: Skripty mohou běžet uvnitř jiného programu, například ve webovém prohlížeči nebo v aplikaci Microsoft Excel.
Otázka: Co je to shell ve skriptovacích jazycích a jak se používá?
Odpověď: Mohou být také shellem, který se spouští z rozhraní příkazového řádku a provádí volání operačního systému (OS). Shell je považován za interaktivní - uživatel si může vybrat, co zadá, a shell na příkaz reaguje. Lze je použít k řízení úloh na mainframech a serverech.
Otázka: Může být jazyk pro obecné použití skriptovacím jazykem?
Odpověď: Někteří lidé tvrdí, že skriptovací jazyk musí být vázán na konkrétní použití. Jiní používají širší definici a zahrnují i univerzální programovací jazyky, které jsou interpretované, nikoli kompilované. Obecný jazyk znamená, že jej lze použít mnoha způsoby k různým účelům. Některé univerzální jazyky (například Java) mají varianty, které lze skriptovat. Neexistuje žádné konkrétní pravidlo, co je nebo není skriptovací jazyk.
Autor
AlegsaOnline.com Skriptovací jazyk: přehled, vlastnosti a použití Leandro Alegsa
URL: https://cs.alegsaonline.com/art/88221