Skriptspråk

Skriptspråk är inom datavetenskap en benämning på "små" högnivåspråk inriktade på specialiserade uppgifter inom redan befintliga miljöer, i motsats till systemspråk, som används för programmering av tillämpningsprogram. Det finns ingen exakt avgränsning mellan systemspråk och skriptspråk, men skriptspråk är ofta interpreterande programspråk som använder dynamisk typning.

Skriptspråkens källkod kallas skript och tolkas av en befintlig exekveringsmiljö, ofta tillgänglig för flera operativsystem, vilket gör skript portabla. Användningsområden för skriptning inkluderar systemanrop via skalprogram, automatisering av repetitiva uppgifter inom program, interaktion med andra programspråk, webbutveckling, definiering av spelmekanik samt grafiska användargränssnitt.

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.

Ett annat språk som dök upp inom samma period var Awk, ett språk speciellt anpassat för att enkelt kunna söka i och analysera stora textmassor (exempelvis 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.

Jämförelse mellan skriptspråk och systemsprå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, på grund av skriptspråkens interpreterade natur. Dock finns det en större varians i systemprogramspråkens prestanda beroende på skicklighetsnivån hos programmeraren. Stora, avancerade program brukar vara olämpliga att göra i skriptspråk, eftersom kraven på prestanda och effektiv minneshantering ökar.

Programvaruutveckling 
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.

Vid utveckling av stora program kan skriptspråkens dynamiska typning innebära att antalet buggar ökar 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.

Portabilitet 
Skript blir portabla genom användandet av en befintlig exekveringsmiljö, medan ett kommersiellt program vanligen levereras som en kompilerad exekverbar fil som är bunden till en viss datorarkitektur. Exempel på portabla systemprogramspråk finns, till exempel Java.

Exempel på skriptspråk 
Typiska skriptspråk är de som tillhandahålls av kommandotolkar, såsom skalprogram till Unix. Andra exempel på skriptspråk är:

 Awk
 AppleScript
 Bash
 Bourne
 JavaScript
 Lotus Notes
 Pawn
 Perl
 PHP
 Python
 Rexx
 Ruby
 Tcl
 ActionScript
 AutoIt
 Lua

Källor 

Programspråk