Start Logga In Skriv Artikel Om Oss
Vad söker du?
Allt om 'Programspråk'

Programspråk

Innehåll- 1. Generellt om programspråk - 1.1 Olika typer av språk - 2. Programspråkens historia och indelning - 2.1 Förhistoria - 2.2 Den första och andra generationens programspråk - 2.3 Tredje generationens programspråk - 2.4 Funktionella programspråk - 2.5 Problemorienterade programspråk - 2.6 Kommandospråk, skalspråk - 2.7 Fjärde generationens programspråk - 2.8 Constraint-programmering - 2.9 Objektorienterade programspråk - 2.10 Deklarativa programspråk - 2.11 Server Page-språk - 3. Att välja programspråk - 4. Några vanliga och ovanliga programspråk - 5. Se även - 6. Länkar

1. Generellt om programspråk

Ett programspråkär ett konstgjort språk som används för programmering av datorer.Det finns många programspråk och flera sätt att dela in dem i grupper: efter ålder, generationer, paradigm (tankemodell), standardisering, o.s.v.

Teoretiskt definieras ett programspråk som en mängd av program. Dessa program är exakt de texter som en grammatik för programspråket kan generera, eller en kompilator för programspråket kan acceptera, varken fler eller färre. Vanligtvist ett oändlig antal. /PT

1.1 Olika typer av språk

Generellt gäller att de som skapar ett nytt programspråk betonar det som skiljer språket från sina föregångare, men att de som starkast förespråkar enhetlig anslutning till en enda, renodlad, teoretisk tankemodell (Algol-68, ML, Smalltalk, Erlang) får färre efterföljare än de som lyckas skapa pragmatiska blandmodeller (C, C++, Java, Perl). Utvecklingen av nya programspråk går hand i hand med utvecklingen av ny programutvecklingsmetodik. De flesta är modevågor som varar i högst fem år, med några få undantag.

2. Programspråkens historia och indelning

2.1 Förhistoria

Ada Byron räknas som den första programmeraren. Hennes datorprogram för beräkning av Bernoullinummer var en algoritm som beskrev hur olika register i den analytiska maskinen skulle flyttas och laddas med olika mellanresultat. Det var skrivet i det vi idag skulle kalla assemblerspråk. Programmet kunde dock aldrig köras, eftersom maskinen aldrig färdigställdes, men programmet fungerar helt korrekt i en simulator.

På senare tid har det upptäckts att nästan alla program Ada Byron skulle ha skrivit var kopierade verbatim från brev av Charles Babbage.

2.2 Den första och andra generationens programspråk

De första datorprogrammen för moderna datorer skrevs direkt för hårdvaran och instruktionerna kallades för maskinspråk. Dessa kallas ibland "första generationens programspråk".

Genom att tillföra enklare variabelsubstitutioner och makron fick man assemblerspråk. Dessa kallas "andra generationens programspråk.

2.3 Tredje generationens programspråk

De första egentliga programspråken (som ibland benämns "tredje generationens programspråk") utvecklades under sent 1940- och tidigt 1950-tal.Det första som fick egentligt genomslag var Fortran (IBM 1954), strax följt av Cobol (1959) och Algol (1960). Denna "traditionella" skola har sin fortsättning i Basic, PL-1, Algol-68 (1968), Pascal (Niklaus Wirth, 1970-tal), C (AT&T, 1973) och Visual Basic (Microsoft).

2.4 Funktionella programspråk

Ett annat mycket tidigt programspråk var Lisp (sent 1950-tal), vars tankemodell avviker från de föregående genom att alla program är matematiska funktioner eller beräkningsuttryck, som körs genom beräkning (evaluering) av uttryckens värde. Denna tankemodell (eller paradigm) kallas för funktionell programmering och Lisp kallas för ett funktionellt programspråk.Andra funktionella språk är Scheme, ML, SML, Caml, OCaml och Haskell. För att markera avstampet benämns de traditionella språken för imperativa. I sin mest utvecklade form kallas de "rent" funktionella språk, där beräkningsuttrycken inte tillåts ha några sidoeffekter utöver beräkningsresultatet, vilket emellertid omöjliggör tilldelning av variabler och försvårar in- och utmatning. Haskell är ett försök i denna riktning.

2.5 Problemorienterade programspråk

I Sverige och i synnerhet på Datasaab förespråkade man under en period på 1960-talet termen problemorienterade språk. Tanken med detta var att programspråken (högnivåspråken) skulle utformas efter problemet man ville lösa med dem, snarare än att man skulle skapa generella språk som löser allt.

2.6 Kommandospråk, skalspråk

För den enklare hanteringen av dagliga rutiner i operativsystemet, körning av program med mera, utvecklades tidigt enkla kommandospråk eller skalspråk som i en del fall vuxit ut till tämligen avancerade skriptspråk.Dessa är mer eller mindre interaktiva och tillhör familjen interpreterande programspråk.

2.7 Fjärde generationens programspråk

Med RPG som utveckaldes av IBM för System 3-serien av datorer, infördes en förenklad modell för administrativa tillämpningar som omväxlande kallas formulärbaserad programmering eller fjärde generationens programspråk. Det räknas numera knappast som något större framsteg i programspråkens historia, sitt namn till trots.

2.8 Constraint-programmering

Utvecklingen av relationsdatabaser ledde till skapandet av SQL (och dess föregångare Sequel), som är i en klass för sig. Det är centrerat runt en databas och skulle därför kunna kallas objekt- eller dataorienterat, och programsatsernas form gör att språket även kallas deklarativt. En fråga i SQL implicerar i sig inte en specifik algoritm för beräkning av svaret, utan man anger vilken form svaret ska ha. Därför är det ett constraint-baserat programspråk.

2.9 Objektorienterade programspråk

Ännu en ny tankemodell är objektorienterad programmering, representerat av språket Simula (1967), som grundades på Algol-60.Ett annat tidigt objektorienterat programspråk är Smalltalk.Det är dock först med C++ (AT&T, 1980-talet) och Java (Sun Microsystems, 1995) som detta tankesätt slagit igenom på allvar. Idag är C# (Microsoft) ett vanligt objektorienterat språk. Kritiserat för att vara "lite väl likt Java".

En högre nivå av OO-programering finns i t.ex. Self från SunLabs, som inte har indelning av klasser och instanser, utan bara objekt och är därmed ett superset för alla andra OO-språk som t.ex. small-talk. Denna kategri kallas ofta Prototyporienterad-programmering. En särart för vanliga program är aspektprogrammering som vill nå några av prototypprogrammeringens fördelar av extrem återanvändbarhet.

2.10 Deklarativa programspråk

Den matematiska logiken har inspirerat Prolog där programmen skrivs i form av logiska regler. Körning av programmet består sedan i att dra slutsatser ur reglerna. Prolog kallas ett deklarativt programspråk.

Donald E. Knuths språk META som används i hans egna typsnittsbeskrivningsspråk METAFONT och i John D. Hobbys utvidgning MetaPost är delvis deklarativt för att kunna uttrycka geometri på ett matematiskt praktiskt sätt.

Telefonivärldens fokus på signalering och händelser har färgat programspråket Erlang som under några år utvecklades inom Ericsson. Det är väsentligen ett funktionellt programspråk (se ovan).

2.11 Server Page-språk

Med Internet och WWWs populära genomslag under 1990-talet har ett antal programspråk tillkommit för att skapa webbtillämpningar, till exempel Perl, Pike, Python.En del av dessa blandar instruktioner från programspråk med dokumentationsformat eller sidbeskrivningsspråk, till exempel Cold Fusion, RXML, ASP, JavaServer Pages och PHP.

3. Att välja programspråk

En avgörande faktor vid valet av programspråk är tillgången på personer som är kunniga i eller villiga att lära sig det aktuella språket. Ofta talar detta argument till fördel för de allra vanligaste programspråken (C++, Java, Visual Basic), men det kan också löna sig att låta ett litet team av programmerare välja eller rentav konstruera sitt eget språk, eftersom detta drastiskt kan höja motivationen och därmed effektiviteten.

4. Några vanliga och ovanliga programspråk

  • ABAP
  • ActionScript
  • Ada
  • Adapt
  • AIML
  • Algol
  • Algol-68
  • Algol-genius
  • APL
  • ARexx
  • assembler
  • awk
  • B
  • Basic
  • BCPL
  • BLISS
  • Brainfuck
  • C
  • C++
  • C#
  • Caml
  • Chef
  • Cobol
  • Concurrent C
  • Delphi
  • E
  • EPSILON
  • Erlang
  • Euphoria
  • Forth
  • Fortran
  • Goedel
  • Haskell
  • HyperTalk
  • INTERCAL
  • Java
  • Javascript/ECMAscript
  • LabVIEW
  • Linoleum
  • Lisp
  • LPC
  • Lua
  • META, kan ses som delmängd av METAFONT och MetaPost
  • ML
  • Modula
  • Modula-II
  • Modula-3
  • Musil
  • Oberon
  • Objective C
  • OCaml
  • OHaskell
  • Pascal
  • Perl
  • PHP
  • Pike
  • PL/I
  • Plankalkül
  • Prolog
  • Prosim
  • Python
  • RPGIV
  • Ruby
  • Scheme
  • SDL
  • Self
  • Simula
  • Smalltalk
  • SML
  • Snobol
  • Squeak
  • TeX
  • Visual Basic

5. Se även

  • Programbibliotek
  • Hello world
  • 99 bottles of beer

6. Länkar

En längre lista med programspråk, med programexempel, hittar du på http://internet.ls-la.net/mirrors/99bottles/.

Redigera?

Artikeln skriven 2009-01-17 av Learning4sharing

Inga kategorier för denna artikel än...

Vi behhöver hjälp att kategorisera våra artiklar. Kan du skriva ett nyckelord för denna artikel? Du kan skriva upp till 3 olika nyckelord för denna artikel, vi uppskattar din hjälp!

Skriv nyckelord som du tycker beskriver denna artikel på ett bra sätt. Du kan ange 3 olika nyckelord för denna artikel, max 20 tecken per nyckelord.

  1. Lägg till fler
    Skriv in svaret på frågan: 5+5

Intresserad av fler artiklar?

Markus Aujalay
Andreas Hedlund
ITU
Christian Hellberg
Mats Ödman
Ytterplagg
NTF
Leo Trotskij
Pressfotografernas klubb

Senaste sökningarna

DRAM har fått 1381 sökningar. Den senaste gjordes 2024-06-16 13:28:38.

lento har fått 1382 sökningar. Den senaste gjordes 2024-06-16 13:25:55.

offer har fått 1299 sökningar. Den senaste gjordes 2024-06-16 13:24:35.

andrej tjikatilo har fått 1958 sökningar. Den senaste gjordes 2024-06-16 13:23:55.

semifinal har fått 1420 sökningar. Den senaste gjordes 2024-06-16 13:23:42.

hugh har fått 1365 sökningar. Den senaste gjordes 2024-06-16 13:20:47.

79 har fått 1735 sökningar. Den senaste gjordes 2024-06-16 13:20:35.

Nellie har fått 1323 sökningar. Den senaste gjordes 2024-06-16 13:20:08.

poseidon har fått 1356 sökningar. Den senaste gjordes 2024-06-16 13:19:36.

BNP har fått 1813 sökningar. Den senaste gjordes 2024-06-16 13:19:18.

oligopol har fått 1435 sökningar. Den senaste gjordes 2024-06-16 13:18:19.

arkitekt har fått 1447 sökningar. Den senaste gjordes 2024-06-16 13:17:51.

Designed by: template world
Learning4sharing.nu
All Rights Reserved. 0.07 SEK

Logga in

Välkommen att redigera och skriva nya artiklar!

Ingent Konto?

Skaffa konto för att redigera och skapa nya ariklar Nytt Konto.

Ny Användare

Välkommen att redigera och skriva nya artiklar! Skapa konto nedan.


Ett verifieringsmail kommer att skickas till din E-post som du måste öppna och verifiera din E-post med

Lägg till artikel

Du är inte inloggad.

Logga In eller Skapa konto.