The First Step Toward Sophistication: ALGOL 60

Relevanta dokument
Kapitel 2. Evolutionen av de viktigaste programmeringsspråken ISBN

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Introduktion till programmering. Programspråk och paradigmer

Imperativ programmering

Föreläsning 5 5DV086 - Programspråk

Program & programmering

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Föreläsning 2. Operativsystem och programmering

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Imperativ programmering. Föreläsning 3

Objektorienterad programmering

TDP002 Imperativ programmering

Föreläsning 23 Programmeringens historia och paradigmer

Innehålls förteckning

Introduktion till programmering och Python Grundkurs i programmering med Python

TDIU01 - Programmering i C++, grundkurs

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Grundkurs i programmering - intro

Exempel på typer av datorspråk EXCEL

TDP002 - Imperativ programmering

TDP002 - Imperativ programmering

Föreläsning 1: Intro till kursen och programmering

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Imperativ programmering. Föreläsning 2

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Imperativ programmering. Föreläsning 4

Programmering för språkteknologer I, VT2012. Rum

Föreläsning 1: Intro till kursen och programmering

Repetition C-programmering

Introduk+on +ll programmering i JavaScript

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Programmering A. Johan Eliasson

Välkomna till NADA. Paradigm i datalogin. Vad är ett paradigm

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Föreläsning 1 & 2 INTRODUKTION

Klassdeklaration. Metoddeklaration. Parameteröverföring

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Lite mer om CGI-programmering

Exempel på typer av datorspråk EXCEL

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

Sista delen av kursen

Introduktion C-programmering

Sista delen av kursen

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Kursplanering Objektorienterad programmering

SMD 134 Objektorienterad programmering

Ingenjörsfirman Stéen Java Sida 1 av 1

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

Objektorienterad programmering

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

IT för personligt arbete F6

Skolverket Workshop i kursen TIATIL00S Tillämpad Programmering

F2: Krav på objektorienterat språk

Inledande programmering med C# (1DV402) Introduktion till C#

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Tentamen Grundläggande programmering

JAVAUTVECKLING LEKTION 1

En kort text om programmering i C.

Parameteröverföring. Exempel. Exempel. Metodkropp

TDDC77 Objektorienterad Programmering

TDDD78 / 729A85 Objektorienterad programmering och Java. Kursinformation Java: Varifrån och varför? Java för Pythonprogrammerare

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

Programmering B med Visual C

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

F5: Högnivåprogrammering

F5: Högnivåprogrammering

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Användar- och systemdokumentation

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

SKOLFS. beslutade den -- maj 2015.

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Objektorienterad programmering i Java

Introduktion till användning av linux-servern sledge och några övningsuppgifter

SMD 134 Objektorienterad programmering

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Typkonvertering. Java versus C

Sammansatta datatyper Generics: Parametrisk polymorfism

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Transkript:

The First Step Toward Sophistication: ALGOL 60 Utvecklingsomgivning FORTRAN hade (just och just) kommit för IBM 70x-serien Många andra språk under utveckling, alla för specifika datorer Inget portabelt språk; alla var maskinberoende Inget universellt språk för att kommunicera algoritmer med ALGOL 60 blev resultatet av försöken att designa ett universellt språk Copyright 2007 Addison-Wesley. All rights reserved. 1-1

Den tidiga designprocessen ACM och GAMM (Gesellschaft für Angewandte Mathematik und Mechanik) träffades för fyra dagar för design (den 27 maj till den 1 juni 1958) målsättningar: Nära till matematisk standardnotation Naturvetenskapliga tillämpningar Bra för att beskriva algoritmer med i publikationer Måste kunna översättas till maskinkod Amerikanska och europeiska intressen skulle sammanjämkas èkompromisser (./,) Copyright 2007 Addison-Wesley. All rights reserved. 1-2

ALGOL 58 Begreppet datatyp formaliserades Namn på identifierare kunde vara godtyckligt långa (FORTRAN I: max. 6 tecken) Arrays kunde ha obegränsat många dimensioner (FORTRAN I: max. 3) Parameter delades i in- och utparametrar Programmeraren fick välja en arrays lägre gräns (FORTRAN I: alltid 1) Index angavs med [] (FORTRAN 1: ()) Nästlade villkorssatser tillåtna (ej i FORTRAN I) Blockstruktur (begin... end) Semikolon ; för att separera instruktioner Copyright 2007 Addison-Wesley. All rights reserved. 1-3

ALGOL 58 Tilldelningsoperator blev := Zuses plankalkül: uttryck => variabel > saknades i hålkortsstansar resultatet blev =: ( : fanns på stansarna) Amerikanarna insisterade på att operatorn skulle svängas om, så att den skulle motsvara FORTRANs =, vilket resulterade i variabel := uttryck Psykologer är fortfarande oense om vilken som skulle vara den mest naturliga riktningen för mänsklig perception if fick en else-if del Inget I/O - would make it machine dependent Copyright 2007 Addison-Wesley. All rights reserved. 1-4

ALGOL 58: Implementation Den tidiga versionen var inte avsedd för implementation utan som diskussionsunderlag, men varianter av den implementerades ändå (MAD, JOVIAL) Även om IBM i början var entusiastiska, tog allt stödet slut vid mitten av 1959 (satsade på FORTRAN i stället) è FORTRAN fick en mycket dominerande ställning, även om Algol var mycket elegantare som språk betraktat Copyright 2007 Addison-Wesley. All rights reserved. 1-5

Copyright 2007 Addison-Wesley. All rights reserved. 1-6

ALGOL 60: översikt Modifierade ALGOL 58 på ett 6-dagarsmöte i Paris Nya drag: Blockstruktur (local scope) Två parameteröverföringsmetoder pass by value pass by name Subprogramrekursion Stackdynamiska arrays (utrymmet allokeras när man kommer till funktionen/proceduren, storleken bestäms när man når deklarationen) Fortfarande ingen I/O och ingen stränghantering Copyright 2007 Addison-Wesley. All rights reserved. 1-7

ALGOL 60:utvärdering Framgångar Blev standardsättet att publicera algoritmer på i över 20 år Alla de följande imperativa språken är baserade på det PL/1, SIMULA 67, ALGOL 68, C, Pascal, Ada, C++, Java,... Det första maskinoberoende språket Första språket med en formellt definierad syntax (BNF Backus-Naur-form) è formella språk, syntaxanalys, kompilatordesign Copyright 2007 Addison-Wesley. All rights reserved. 1-8

ALGOL 60: utvärdering (forts.) Misslyckanden Nådde aldrig större användarskaror, speciellt inte i USA Anledningar Avsaknaden av I/O och en teckenuppsättning gjorde att programmen inte var portabla För flexibelt è svårt att implementera Fortran vann terräng Den formella syntaxbeskrivningen upplevdes som svår Brist på stöd från IBM Copyright 2007 Addison-Wesley. All rights reserved. 1-9

Att digitalisera business records: COBOL Utvecklingsomgivning Businesstillämpningar behövde ett eget språk UNIVAC började använda FLOW-MATIC USAF (US Air Force) började använda AIMACO IBM började utveckla COMTRAN (COMmercial TRANslator) Redan 1953 skrev Grace Hopper vid UNIVAC att medan matematiska program borde skrivas med matematisk notation, borde datahanteringsprogram skrivas mha engelska satser. Copyright 2007 Addison-Wesley. All rights reserved. 1-10

Copyright 2007 Addison-Wesley. All rights reserved. 1-11

COBOL: Historisk bakgrund Baserat på FLOW-MATIC FLOW-MATIC-drag Namn upp till 12 tecken, inkl. - (ex. nr-of-men) Engelska namn för aritmetiska operatorer (inga aritmetiska uttryck!!!) multiply, add Data och kod var helt separerade Varje instruktion påbörjades med ett verb Copyright 2007 Addison-Wesley. All rights reserved. 1-12

COBOL: Designprocess Första designmöte (Pentagon) - May 1959 Designmål Måste se ut som enkel engelska Måste vara enkelt att använda, även om detta innebar att språket förlorade i styrka Måste utbreda användarkåren Får inte påverkas av de aktuella problemen med kompilering Designkommittés medlemmar kom alla från datorfabrikanter eller det amerikanska försvarsministeriet (DoD) Designproblem: aritmetiska uttryck? Index? Fights among manufacturers Copyright 2007 Addison-Wesley. All rights reserved. 1-13

COBOL:utvärdering Kontributioner Första makrofaciliteten i ett högnivåspråk Hierarkiska datastrukturer (records) Nästlade selektionssatser Långa namn (upp till 30 tecken), inkl. - Separat dataavdelning (data division) Copyright 2007 Addison-Wesley. All rights reserved. 1-14

COBOL: DoD-inverkan Första språk beställt av DoD skulle ha misslyckats utan DoD Fortfarande det mest använda språket för businessapplikationer (Sebesta 2010) Copyright 2007 Addison-Wesley. All rights reserved. 1-15

Copyright 2007 Addison-Wesley. All rights reserved. 1-16

Början till timesharing: BASIC Designad av Kemeny & Kurtz vid Dartmouth (75 % av de studerande hörde till liberal arts, dvs humanister) Designmål : Lätt att lära sig och använda för studerande utanför naturvetenskaper Must be pleasant and friendly Fast turnaround for homework Användartid viktigare än datortid Gratis och privat access: ett antal terminaler mot en mainframe (en centraldator) Copyright 2007 Addison-Wesley. All rights reserved. 1-17

Början till timesharing: BASIC Första programmet matades in och kördes 4:00 på morgonnatten första maj 1964 Numbers som dadatyp (designers ansåg att humanisterna inte skulle uppskatta (uppfatta?) skillnaden mellan heltal och flyttal) 14 olika kommandon Antalet terminaler i juni: 11 st, på hösten 20 st. Första version var inte interaktiv, utan kördes som batch Numera: Visual BASIC Första brett använt programmeringsspråk med time sharing Copyright 2007 Addison-Wesley. All rights reserved. 1-18

2.8 Everything for Everybody: PL/I Designat av IBM och SHARE Datoriseringsläget i 1964 (från IBMs perspektiv) Naturvetenskaplig användning IBM 1620- och 7090-datorer FORTRAN användargruppen SHARE Business computing IBM 1401, 7080-datorer COBOL användargruppen GUIDE Copyright 2007 Addison-Wesley. All rights reserved. 1-19

Copyright 2007 Addison-Wesley. All rights reserved. 1-20

PL/I: Bakgrund Tills 1963 Användare inom naturvetenskap började ha behov av mera utvecklad I/O, såsom COBOL hade; businessanvändare började ha behov av flyttalsoperationer och arrays Det började se ut som om flera företag skulle behöva två typer av datorer, två typer av språk och två typer av servicepersonal (operatorer, programmerare etc) è för dyrt En självklar lösning Konstruera en ny dator som klarar av båda applikationstyperna Designa ett nytt språk som klarar av båda applikationstyperna Copyright 2007 Addison-Wesley. All rights reserved. 1-21

PL/I: Designprocessen Designat i fem månader av the 3 X 3 Committee Tre medlemmar från IBM, tre medlemmar från SHARE Ursprunglig idé en extension av Fortran IV Ursprungligen kallat för NPL (New Programming Language) Namnet ändrades till PL/I 1965 Copyright 2007 Addison-Wesley. All rights reserved. 1-22

PL/I: utvärdering PL/I kontributioner Första concurrency på unit-nivå Första undantagshantering Switch väljbar rekursion Första datatyp för pekare Första array cross sections (tvärsnitt?) Problem Många av de nya särdragen var dåligt designade För stort och för komplext Copyright 2007 Addison-Wesley. All rights reserved. 1-23

Två tidiga dynamiska språk: APL och SNOBOL Karakteriserades av dynamisk typning och dynamisk minnesallokering Variablerna är otypade en variabel får en typ när den tilldelas ett värde Minne allokeras till variabeln när den tilldelas ett värde Copyright 2007 Addison-Wesley. All rights reserved. 1-24

APL: A Programming Language Designat som ett språk för att beskriva hårdvara med vid IBM av Ken Iverson kring 1960 Mycket uttrycksfullt (många operatorer, för både skalära värden och arrays med varierande dimensioner) Programmen är mycket svåra att läsa Används fortfarande; minimala ändringar Copyright 2007 Addison-Wesley. All rights reserved. 1-25

SNOBOL Designat som ett språk för stränghantering vid Bell Labs av Farber, Griswold och Polensky Kraftfulla operatorer för mönsteranpassning av strängar (pattern matching) Långsammare än alternativa språk (och används därför inte längre för att koda editorer) Används fortfarande i någon grad för textprocessering Copyright 2007 Addison-Wesley. All rights reserved. 1-26

Copyright 2007 Addison-Wesley. All rights reserved. 1-27

Början till dataabstraktion: SIMULA 67 Designat primärt för systemsimulering i Norge av Nygård and Dahl Baserat på ALGOL 60 och SIMULA I Primära kontributioner Korutiner subrutiner som körs bredvid varann, turas om kontrollen Implementerar en klasstruktur Klasser utgör grunden för dataabstraktion Klasser är strukturer som innehåller både lokala data och lokal funktionalitet Copyright 2007 Addison-Wesley. All rights reserved. 1-28

Copyright 2007 Addison-Wesley. All rights reserved. 1-29

Ortogonal design: ALGOL 68 En vidareutveckling av ALGOL 60 men inte en supermängd av det språket. Källan till flera nya idéer (även om språket självt aldrig fick en bred användarbas) Designen är baserad på begreppet ortogonalitet Ett fåtal huvudkonstrukter, relativt få mekanismer att kombinera dessa med. Copyright 2007 Addison-Wesley. All rights reserved. 1-30

ALGOL 68: Utvärdering Kontributioner Användardefinierade datastrukturer Referenstyper Dynamiska arrays (hette flex arrays) Kommentar Användes mindre än ALGOL 60 Hade stort inflytande på därpåföljande språk, speciellt på Pascal, C och Ada Copyright 2007 Addison-Wesley. All rights reserved. 1-31

Tidiga ättlingar till ALGOLs ALGOL språken påverkade alla imperativa språk Pascal C Modula/Modula 2 Ada Oberon C++/Java Perl (till någon grad) Copyright 2007 Addison-Wesley. All rights reserved. 1-32

Copyright 2007 Addison-Wesley. All rights reserved. 1-33

Pascal - 1971 Utvecklades av Wirth (en medlem av ALGOL 68-kommittén) Designat för undervisning av strukturerad programmering Litet, enkelt, inget riktigt nytt Stor inverkan på programmeringsundervisning Från mitten av 1970-talet till slutet av 1990- talet var Pascal det mest använda språket inom programmeringsundervisning Copyright 2007 Addison-Wesley. All rights reserved. 1-34

Copyright 2007 Addison-Wesley. All rights reserved. 1-35

C - 1972 Designat för systemprogrammering (vid Bell Labs av Dennis Richie) Utvecklades primärt från BCLP och B men också från ALGOL 68 Kraftfull uppsättning operatorer, men dålig type checking Spreds ursprungligen via UNIX Många tillämpningsområden Copyright 2007 Addison-Wesley. All rights reserved. 1-36

Perl Besläktat med ALGOL enbart via C Ett skriptspråk Ett script (fil) innehåller instruktioner som ska exekveras Andra exempel: sh, awk, tcl/tk Utvecklades av Larry Wall Perl variabler är statiskt typade och implicit deklarerade Tre distinktiva namnrymder, markerade via det första tecknet i variabelnamnet Kraftfullt, men inte utan risker Används allmänt för allehanda programmering Copyright 2007 Addison-Wesley. All rights reserved. 1-37

Logikbaserad programmering: Prolog Utvecklades av Colmerauer och Roussel (Universitet Aix-Marseille), med hjälp av Kowalski (University of Edinburgh) Baserat på formell logik (1. ordningens predikatkalkyl) Ickeproceduralt, deklarativt Kan beskrivas som ett intelligent databassystem som använder sig av en logisk härledningsprocess för att härleda sanningsvärdet hos givna påståenden. Synnerligen icke-effektivt, få men viktiga tillämpningsområden. Copyright 2007 Addison-Wesley. All rights reserved. 1-38

Copyright 2007 Addison-Wesley. All rights reserved. 1-39

History s Largest Design Effort: Ada Väldig designsatsning, omfattande hundratals personer, massor av pengar och ca åtta år Strawman requirements (April 1975) Woodman requirements (August 1975) Tinman requirements (1976) Ironman equipments (1977) Steelman requirements (1978) Kallades för Ada efter friherinnan Augusta Ada Byron, känd som den första programmeraren (skrev kod för Babbages maskin) Copyright 2007 Addison-Wesley. All rights reserved. 1-40

Ada: utvärdering Kontributioner Packages stöd för dataabstraktion Undantagshantering - omfattande Generiska programenheter (units) Concurrency via tasking model Kommentar: Kompetitiv design Inkluderade allt man då visste om mjukvaruteknik och språkdesign De första kompilatorerna var mycket svårhanterbara; den första verkligen användbara kompilatorn kom först efter ca fem år efter att språkdesignen var färdig Copyright 2007 Addison-Wesley. All rights reserved. 1-41

Ada 95 Ada 95 (påbörjades1988) Stöd för OOP via typderivering Bättre kontrollmekanismer för gemensamma data Nya concurrency features Flera flexibla bibliotek Populariteten dalade eftersom DoD inte längre förutsatte just Ada, men också pga att C++ började vinna terräng. Copyright 2007 Addison-Wesley. All rights reserved. 1-42

Copyright 2007 Addison-Wesley. All rights reserved. 1-43

Objektorienterad Programmering: Smalltalk Utvecklades vid Xerox PARC, ursprungligen av Alan Kay, senare av Adele Goldberg Första fullständiga implementationen av ett objektorienterat språk (dataabstraktion, nedärvning och dynamisk bindning av typer è flerformighet/polymorfism) Pionjär inom design av grafiska användargränssnitt Främjade OOP Copyright 2007 Addison-Wesley. All rights reserved. 1-44

Copyright 2007 Addison-Wesley. All rights reserved. 1-45

Att kombinera imperativ och objektorienterad programmering: C++ Utvecklades vid Bell Labs av Stroustrup i 1980 Utvecklades från C och SIMULA 67 Egenskaper som stöder objektorienterad programmering, delvis tagna från SIMULA 67 Erbjuder undantagshantering Ett stort och komplext språk, delvis pga att C++ stöder både procedural och OO programmering Blev snabbt populärt, tillsammans med OOP ANSI-standard godkändes i november 1997 Microsofts version (släpptes med.net i 2002): Managed C++ delegates, interfaces, ingen multipel nedärvning Copyright 2007 Addison-Wesley. All rights reserved. 1-46

Besläktade OOP-språk Eiffel (designat av Bertrand Meyer - 1992) Inte direkt härlett ur något annat språk Mindre och enklare än C++, men har ändå nästan samma styrka Fick inte samma gehör som C++ eftersom många C++ -entusiaster redan var C-kodare Delphi (Borland) Pascal plus särdrag för att stöda OOP Mera elegant och säkrare än C++ Copyright 2007 Addison-Wesley. All rights reserved. 1-47

Copyright 2007 Addison-Wesley. All rights reserved. 1-48

Ett imperativt baserat objektorienterat språk: Java Utvecklades vid Sun på tidigt 90-tal C och C++ var inte tillfredsställande för inbyggd elektronik Baserat på C++ Markant förenklat (saknar struct, union, enum, pekararitmetik, och hälften av de påtvingade typomvandlingarna hos C++) Stöder endast OOP Har referenser, men inte pekare Inkluderar stöd för applets och en form av parallellism (concurrency) Copyright 2007 Addison-Wesley. All rights reserved. 1-49

Java: utvärdering Eliminerade de farliga/otrygga dragen hos C++ Concurrency features Bibliotek för applets, GUIs, databasaccess Portabelt: Java Virtual Machine, JITkompilatorer Använd(e)s mycket för WWW-sidor Användning på även andra områden spred sig snabbare än för något annat språk Senaste version 8 update 73 (5/2/16) Copyright 2007 Addison-Wesley. All rights reserved. 1-50

Skriptspråk för webben JavaScript Sammarbete mellan Netscape och Sun Microsystems Används i webbprogrammering (klientsidan) för att skapa dynamiska HTML-dokument Släkt med Java endast via likartad syntax PHP PHP: Hypertext Preprocessor Används för webbapplikationer (serversidan); producerar HTML-kod som output Python Ett OO tolkat skriptspråk Typkontrollerat men dynamiskt typat Stöder CGI (Common Gateway Interface) och blankettprocessering Copyright 2007 Addison-Wesley. All rights reserved. 1-51

Copyright 2007 Addison-Wesley. All rights reserved. 1-52

Ett C-baserat språk för det nya millenniet: C# En del av.net-utvecklingsplattform Baserat på C++, Java och Delphi Erbjuder ett språk för komponentbaserat mjukvaruutveckling Alla.NET-språk (C#, Visual BASIC.NET, Managed C++, J#.NET och Jscript.NET) använder Common Type System (CTS), vilket erbjuder ett gemensamt klassbibliotek Likely to become widely used Copyright 2007 Addison-Wesley. All rights reserved. 1-53

Sammandrag Utveckling,utvecklingsmiljö och utvärdering av ett antal viktiga programmeringsspråk Perspektiv på aktuella frågor inom språkdesign Copyright 2007 Addison-Wesley. All rights reserved. 1-54