Programmeringssprog | type skriftligt sprog, der fortæller computere, hvad de skal gøre
Et programmeringssprog er en type skriftsprog, der fortæller computere, hvad de skal gøre. Eksempler er: Eksempler: Python, Ruby, Java, JavaScript, C, C++ og C#. Programmeringssprog bruges til at skrive alle computerprogrammer og computersoftware. Et programmeringssprog er som et sæt instruktioner, som computeren følger for at gøre noget.
En programmør skriver tekst i kildekoden til et programmeringssprog for at lave programmer. Normalt bruger programmeringssproget rigtige ord til nogle af kommandoerne (f.eks. "hvis... så... ellers...", "og", "eller"), så sproget er lettere for et menneske at forstå. Som ethvert normalt sprog anvender mange programmeringssprog tegnsætning. Mange programmer kompileres derefter, hvilket betyder, at computeren ændrer eller oversætter kildekoden til et andet sprog (f.eks. assemblagesprog eller maskinsprog), som en computer kan læse, men som er meget sværere for et menneske at læse.
Computerprogrammer skal skrives meget omhyggeligt. Hvis en programmør begår fejl, eller hvis et program forsøger at gøre noget, som programmøren ikke har designet det til at gøre, kan programmet stoppe med at fungere, hvilket kaldes "crashing". Når et program har et problem på grund af den måde, koden er skrevet på, kaldes det en "fejl". En meget lille fejl kan forårsage et meget stort problem.
Typer af programmeringssprog
Der findes mange typer programmeringssprog. De fleste programmeringssprog følger ikke kun én type, så det er svært at tildele en type til hvert sprog. Eksemplerne på hver type er angivet i hvert afsnit nedenfor, fordi de er de bedst kendte eksempler på den pågældende type.
Højt niveau vs. lavt niveau
| Dette afsnit kræver flere oplysninger. (august 2018) |
Programmeringssprog på højt niveau kræver mindre viden om hardware end programmeringssprog på lavt niveau. Det skyldes, at programmeringssprog på højt niveau abstraherer fra den hardware, som programmet kører på. Mange højniveausprog kræver en fortolker til at køre kildekoden på hardwaren i realtid. På den anden side konverterer lavniveausprog normalt hele kildekoden til maskinkode, inden den køres, fordi kildekoden er så tæt på hardwaren, at det er let at gøre det. High level kræver en compiler, men low - level kræver det ikke
Deklarativ vs. imperativ programmering
Deklarative programmeringssprog beskriver et "problem", men de siger normalt ikke, hvordan problemet skal løses. Problembeskrivelsen anvender logik, og "løsningen" af problemet ligner ofte en automatisk bevisførelse af et system af logiske aksiomer. Som eksempler på sådanne programmeringssprog kan nævnes Prolog, XSLT, LISP og SQL.
Imperative programmeringssprog beskriver et system af tilstandsændringer. Ved starten er programmet i en bestemt tilstand, og computeren får trin, som den skal følge for at udføre en handling. Når trinene følges, får programmet til at "skifte tilstand".
Generelt er deklarative programmeringssprog mere sikre og kortere. Imperative programmeringssprog er mere almindelige, fordi de er lettere at bruge.
Funktionel vs. proceduremæssig
Ved funktionel programmering betragtes programmering som en funktion i matematikken. Programmet modtager input sammen med nogle oplysninger og bruger disse oplysninger til at skabe output. Det vil ikke have en tilstand ind imellem, og det vil heller ikke ændre ting, der ikke er relateret til beregningen.
Procedureprogrammer specificerer eller beskriver sæt af trin eller tilstandsændringer.
Stack-baseret
Stakbaserede sprog ser på en del af programmets hukommelse som en stak kort. Der er meget få ting, der kan gøres med en stak. Et dataelement kan lægges øverst på stakken. Denne operation kaldes generelt "push". Et dataelement kan fjernes fra toppen af stakken. Dette kaldes en "pop". Man kan se på elementet øverst på stakken uden at fjerne det. Dette kaldes et "peek".
Hvis et program er skrevet som "push 5; push 3; add; pop;" vil det lægge 5 øverst på stakken, lægge 3 oven på 5, lægge de to øverste værdier sammen (3 + 5 = 8), erstatte 3 og 5 med 8 og udskrive den øverste værdi (8). Eksempler på programmeringssprog, der er stabelbaserede, er sprogene Postscript og Forth.
Objektorienteret
Objektorienterede programmeringssprog placerer data og funktioner, der ændrer data, i en enkelt enhed. Denne enhed kaldes et "objekt". Objekter kan interagere med hinanden og ændre et andet objekts data. Dette kaldes normalt indkapsling eller informationsskjulning. De fleste moderne programmeringssprog er objektorienterede eller tillader i det mindste denne form for programmering. Eksempler herpå er Java, Python, Ruby, C++, C# og andre C-sprog.
Flow-orienteret
Flow-orienteret programmering ser programmering som en sammenkobling af forskellige komponenter. Disse komponenter sender beskeder frem og tilbage. En enkelt komponent kan indgå i forskellige "programmer", uden at den behøver at blive ændret internt.
Videnskabelig databehandling
Nogle af de ovennævnte sprog kan bruges til videnskabelige beregninger. F.eks. anvendes C++ og Python også på denne måde. På den anden side er der nogle sprog, hvis hovedformål er videnskabelig databehandling. Følgende er nogle eksempler:
- MATLAB - fremstillet af MathWorks
- GNU Octave, Scilab - open source-versioner af MATLAB
- R (programmeringssprog) - meget udbredt inden for statistik
- Wolfram Mathematica - lavet af Wolfram Research
Oprettelse af dokumenter
LaTeX og SATySFi er programmeringssprog, der hjælper med at oprette dokumenter.
Regler
Ethvert programmeringssprog har regler for, hvad det kan og ikke kan gøre. Disse omfatter:
- Korrekte tal (typer af tal, og hvor store eller små tal de kan være)
- Ord (reserverede ord, skelnen mellem store og små bogstaver)
- Grænser for, hvad programmeringssproget kan gøre
De fleste sprog har officielle standarder, der definerer reglerne for, hvordan kildekoden skal skrives. Nogle programmeringssprog har to eller flere standarder. Dette kan ske, når en ny standard erstatter en gammel standard. F.eks. erstattede Perl 5 standarden Perl 4 i 1993. Det kan ske, fordi to personer har lavet to standarder på samme tid. Der findes f.eks. flere standarder for APL.
Objektorienteret programmering
Objektorienteret programmering (undertiden forkortet til OOP) er en form for programmering, hvor alle dele af programmet er objekter. Objekter er dele af hukommelsen med den samme struktur, som kan bruges igen og igen. En bankkonto, et bitmap eller en helt fra et videospil kan alle være objekter i et program. Objekter består af egenskaber (oplysninger, som objektet gemmer) og metoder, som er ting, som objektet kan gøre. Et hundeobjekt kan have egenskaber som højde og hairColor. Dens metoder kan omfatte gø() og vrikke med halen().
Alle objekter oprettes ud fra skabeloner, der kaldes klasser. Du kan tænke på en klasse som en støbeform, som objekter laves af. Klassen definerer alle de egenskaber og metoder, som dens objekter skal have. Objekter, der oprettes ud fra en klasse, kaldes instanser af klassen. En klasse kan udvide en anden klasse, hvilket betyder, at den tager alle klassens egenskaber og metoder, men kan tilføje sine egne.
Her er et eksempel på, hvordan en klasse kan se ud i et programmeringssprog:
class Dog extends Mammal{ //Dette er egenskaber: String breed = "Collie" String type = "Herding Dog" //Disse er metoder void wagTail(){ //Foretager nogle viftende bevægelser } void bark(){ //Foretager gøen her } }
Bemærk, at klassen Hund udvider klassen Pattedyr, så alle hunde vil have pattedyrs egenskaber, f.eks. hårlængde, og metoder, f.eks. spise() eller sove().
Objektorienteret programmering anvendes i mange af de mest populære programmeringssprog i dag, f.eks. Java, C#, Objective-C, C++, Python, Ruby, Javascript og ActionScript.
Eksempler
Eksempel på Visual Basic
Her er et simpelt program skrevet i Visual Basic (et sprog fra Microsoft):
Dim Input Input = InputBox("Hvor gammel er du??? - Kode") If Not IsNumeric(Input) Then MsgBox & Input & Input & "Det er ikke et tal!" ElseIf Input < 0 Then MsgBox "Du kan ikke være mindre end nul år gammel!" ElseIf Input > 100 Then MsgBox "Det er gammelt!" Else MsgBox "Du er " & Input & " år gammel." End If
Dette program spørger brugeren om hans eller hendes alder og svarer på grundlag af det, brugeren har skrevet. Hvis brugeren har indtastet noget, der ikke er et tal, siger programmet det. Hvis brugeren har indtastet et tal under nul, siger programmet det. Hvis brugeren siger, at han eller hun er ældre end 100 år, siger programmet: "Det er gammelt!". Hvis brugeren har indtastet en korrekt alder, siger programmet tilbage til brugeren, hvor gammel han eller hun er.
Eksempel på Python
Her er et program, der gør det samme som ovenstående program, men i Python:
try: age = int(raw_input("Hvor gammel er du?")) except ValueError: print ("Det er ikke et tal!") else: if age < 0: print ("Du kan ikke være mindre end nul år gammel!") elif age > 100: print ("Det er gammelt!") else: print("Du er %s år gammel." % age)
Eksempel på C#
Det samme som programmet ovenfor, men i C#:
using System; public class Hello { public static void Main() { Console.WriteLine("Hvad er din alder?"); int age; if (!int.TryParse(Console.ReadLine(), out age))) Console.WriteLine("Det er ikke et tal!"); else if (age < 0) Console.WriteLine("Du kan ikke være mindre end nul år gammel!"); else if (age > 100) Console.WriteLine("Det er gammelt!"); else Console.WriteLine("Du er {0} år gammel.", age); } }
Eksempel på Haskell
Det samme igen, men i Haskell:
import Text.Read main = do putStrLn "Hvad er din alder?" input <- fmap readMaybe getLine putStrLn $ case input of Just age | age < 0 -> "Du kan ikke være mindre end nul år gammel!" | age > 100 -> "Det er gammelt!" | ellers -> "Du er " ++ vis alder ++ " år gammel." Intet -> "Det er ikke et tal!"
Relaterede sider
- Algoritme
- Liste over programmeringssprog
- Programmør
- Compiler
- Computerprogrammering
- Programmeringsparadigme
- Pseudokode
Spørgsmål og svar
Spørgsmål: Hvad er et programmeringssprog?
A: Et programmeringssprog er en type skriftsprog, der fortæller computere, hvad de skal gøre. Det er som et sæt instruktioner, som computeren følger for at gøre noget, og det bruger normalt rigtige ord for nogle af kommandoerne, så det er lettere for mennesker at forstå.
Spørgsmål: Hvad er eksempler på programmeringssprog?
A: Eksempler på programmeringssprog er Python, Ruby, Java, JavaScript, C, C++ og C#.
Spørgsmål: Hvordan skrives programmer i et programmeringssprog?
A: Programmer skrives ved at skrive tekst i kildekoden til et programmeringssprog. Normalt bruges der også tegnsætning.
Spørgsmål: Hvad sker der, når programmer er skrevet i et programmeringssprog?
A: Når programmer er skrevet i et programmeringssprog, skal de kompileres, hvilket betyder, at computeren ændrer eller oversætter kildekoden til et andet sprog (f.eks. assembler- eller maskinsprog), som kan læses af computere, men som er meget sværere for mennesker at læse.
Spørgsmål: Hvad kan der ske, hvis der sker fejl, når man skriver programmer?
A: Hvis der begås fejl, når man skriver programmer, eller hvis programmet forsøger at gøre noget, som det ikke er beregnet til, kan det holde op med at fungere, hvilket kaldes "nedbrud". Når dette sker på grund af den måde, koden er skrevet på, kaldes det en "fejl". Selv små fejl kan forårsage store problemer.
Spørgsmål: Hvorfor skal computerprogrammer være omhyggeligt skrevet?
Svar: Computerprogrammer skal skrives omhyggeligt, fordi selv små fejl kan forårsage store problemer og føre til nedbrud eller fejl.