Skriptspråk
Från Rilpedia
Ett skriptspråk är ett tolkat programspråk. Det innebär att det krävs en speciell exekveringsmiljö för att kunna köra program skrivna i skriptspråk, enligt ungefär samma princip som för Java-program. 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 på många operativsystem utan redigering.
Vanligen har skriptspråken dynamisk typning.
Innehåll |
Historia
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
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 stor skillnad mellan experter och mindre erfarna programmerare i detta avseende för de snabbare språken vilket gör skillnaden blir mycket mindre i praktiken.
En nybörjare skriver nästan lika snabba och effektiva skriptprogram som experten, vilket tyder på att det är nästan omöjligt att skriva riktigt dåliga skriptprogram. Däremot händer det ofta att mindre erfarna C- och C++-programmerare skriver program med sämre prestanda än de hade gjort om de använt sig av ett skriptspråk.
Utvecklingstid
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
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 (fel) 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.
Ett program som ska säljas och spridas till många användare bör lämpligen kunna köras utan en särskild exekveringsmiljö, utan kunna köras som en vanlig exekverbart program.
Exempel på skriptspråk
- Awk
- AppleScript
- Bash
- Bourne
- Caché ObjectScript
- Lotus
- Perl
- PHP
- Python
- Rexx
- Ruby
- Tcl
- ActionScript
- AutoIt
Litteratur
- Prechelt, Lutz (2000). An Empirical Comparison of Seven Programming Languages. IEEE Computer, vol. 33:10, ss. 23-29.