Skriptspråk

Från Wikipedia
Hoppa till: navigering, sök
"Skript" omdirigerar hit, för den behavioristiska termen se beteendeskript.

Ett skriptspråk är ett tolkat programspråk. Det färdiga programmet kan läsas av programmerare utan några speciella verktyg, men kräver en speciell exekveringsmiljö för att kunna köras. Varje skriptspråk har en egen exekveringsmiljö, oftast för flera operativsystem. Skriptkoden är ofta helt portabel, vilket innebär att samma skript kan köras (mer eller mindre) utan ändringar på alla operativsystem för vilka exekveringsmiljön finns tillgänglig.

Vanligen har skriptspråken dynamisk typning.

Typiska skriptspråk med lång historia är de som tillhandahålls av kommandotolkar, såsom Unix' skalprogram. Andra exempel på skriptspråk är awk, perl och python. Java liknar skriptspråken på så sätt att det kräver en egen exekveringsmiljö, men kompileras innan körning.

Historia[redigera | redigera wikitext]

Under 1970-talet dök det upp små, enkla programspråk för Unix som gjorde det enklare för användaren att starta flera program med ett enda kommando, ofta också med villkorssatser som tog hänsyn till omständigheterna. Ett av de första skriptspråken var Bourne.

Snart kom Awk, ett språk speciellt anpassat för att enkelt kunna söka i och analysera stora textmassor (ex. systemloggar) med reguljära uttryck. Den första versionen av Perl, som släpptes 1987, var starkt influerat av Awk och följdes snart av Tcl och Python.

Sedan dess har språken utvecklats ständigt för att mer och mer likna fullfjädrade programspråk utom i vissa avgörande avseenden. Idag kan det mesta skrivas i ett skriptspråk som tidigare endast kunnat skrivas i C (programspråk), ALGOL eller liknande systemprogramspråk.

Prestanda[redigera | redigera wikitext]

Teoretiskt sett är systemprogramspråken C och C++ överlägsna skriptspråken när det gäller snabbhet och minneskrav för program. Dock finns det en större varians i systemprogramspråkens prestanda beroende på skicklighetsnivån hos programmeraren.

Utvecklingstid[redigera | redigera wikitext]

Eftersom skriptspråken är mer uttrycksfulla än systemprogramspråken och en sedan länge accepterad tumregel säger att en programmerares produktivitet mätt i antal kodrader är oberoende av programspråket, är skriptspråken teoretiskt sett överlägsna systemprogramspråken avseende utvecklingstid.

Den högre abstraktionsnivån förhindrar också många buggar som annars är vanliga vid utveckling i systemprogramspråken, vilket än mer bidrar till en snabbare utveckling då testningen inte tar lika lång tid.

Stora program i skriptspråk[redigera | redigera wikitext]

Stora, avancerade program brukar vara olämpliga att göra i skriptspråk, eftersom kraven på prestanda och effektiv minneshantering ökar. Dessutom är skriptspråken utvecklade för att i första hand tillgodose behovet av att snabbt göra små program.

Eftersom många skriptspråk har dynamisk typning innebär det också att antalet buggar kan öka om fler personer arbetar med samma program. Dynamisk typning innebär att en variabel kan användas till flera syften och missförstånd programmerare emellan kan lätt uppstå. Det är dessutom den typ av fel som kompileringen inte upptäcker utan som ses först vid test.

Kompatibilitet[redigera | redigera wikitext]

Ett program som ska säljas och spridas till många användare bör lämpligen i så hög grad som möjligt kunna köras utan en särskild exekveringsmiljö. Därför levereras de vanligen som exekverbara (kompilerade) program, som dock är bundna till en viss datorarkitektur och ett visst operativsystem eller i vissa fall en viss familj av operativsystem.

Skriptspråk som allmänt stöds på målgruppens datorer kan användas för program som skall fungera oberoende av datorarkitektur och på flera operativsystem. Skriptspråk kan också anpassa exekverbara program till en viss miljö, till exempel då programbibliotek eller hjälpprogram som det exekverbara programmet behöver finns i olika varianter.

Så kallade skalprogram, en variant av skriptspråk, används allmänt för att starta upp eller konfigurera exekverbara program i unixliknande och POSIX-kompatibla system, där någon bourne shell-kompatibel kommandotolk (/bin/sh) alltid finns installerad. Också andra skriptspråk, mer lämpliga för större program, finns ofta tillgängliga.

Extremfallet, som traditionellt inte varit ovanlig i unixliknande system, är att installationen av exekverbara program innefattar automatisk konfiguration och kompilering av programmet, om en färdigt kompilerad version inte finns tillgänglig för operativsystemet eller datorarkitekturen ifråga. Detta förutsätter att någon lämplig utvecklingsmiljö finns installerad och att systemet inte skiljer sig på oväntade sätt.

Exempel på skriptspråk[redigera | redigera wikitext]

Litteratur[redigera | redigera wikitext]

  • Prechelt, Lutz (2000). An Empirical Comparison of Seven Programming Languages. IEEE Computer, vol. 33:10, ss. 23-29.