Copyright © 2007 Addison-Wesley. All rights reserved.1-1 “The First Step Toward Sophistication: ALGOL 60” Utvecklingsomgivning –FORTRAN hade (just och.

Slides:



Advertisements
Liknande presentationer
Svenska WebDewey Introduktion
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Innehåll, huvudpresentation 4. Rangordning av ordningsstörningar (fråga 1) 5. Problem med nedskräpning (fråga 1a) 6. Problem med skadegörelse (fråga 1b)
Joomla © 2009 Stefan Andersson 1. Kontaktformulär  På varje seriös webbplats bör det finnas ett kontaktformulär.  Använd ej maillänkar, risk för spam!
BENÄMNA lätta ord SPRÅKTRÄNING VID AFASIKg VIII
Klasser och objekt.
Funktioner och programorganisation
Leif Håkansson’s Square Dancer Rotation
Projektföljeforskning
Redovisning av drogvaneundersökning åk 7-9 Strömsunds kommun 2010
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
Introduktion Logikprogrammering HT-02 Staffan Larsson.
MEDELVÄRDE, MEDIAN & TYPVÄRDE
LANDSTINGSDIREKTÖRENS STAB Regional utveckling BILD 1 Resultat av enkät till landstingspolitiker
Föreläsning 2 Datalogi för E1 2D1343
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl Internetprogrammering F 14 Läs också: Kursboken.
Svenska WebDewey Introduktion
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
Karolinska Institutet, studentundersökning Studentundersökning på Karolinska Institutet HT 2013.
Punktprevalensmätning av trycksår 2011, v.40 Resultat från landstingen
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
ISBN Kapitel 2 Evolutionen av de viktigaste programmerings- språken.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Prolog PROgramming LOGic (programmation en logique)
Java. Kortfattat om Java Syntaxen påminner i hög grad om C++ Stöd för objektorientering Kod kan köras i en virtuell maskin som finns tillgänglig för nästan.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Objektbaserad programmering –Grundläggande om klasser och objekt – (Arv får vänta)  Iden med klasser.
Fastighetsbyrån Konjunkturundersökning Oktober 2012.
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
Svenska WebDewey Introduktion Harriet Aagaard Svenska Deweyredaktion
Programmering i C# 3. Klasser.
Pekare och speciell programstruktur i inbyggda system
Programmeringsbegrepp
Programmering B PHP Lektion 2
Enkätresultat för Grundskolan Elever 2014 Skola:Hällby skola.
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
Hittarps IK Kartläggningspresentation år 3.
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
TÄNK PÅ ETT HELTAL MELLAN 1-50
Greppa Näringen Medlemsundersökning, kvartal 1. 1.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Resultat sammanhållen vård och omsorg om de mest sjuka äldre i Örebro län Västra länsdelen mätperiod 2014.
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
UNIONEN – ALLMÄNHETEN OM EGET FÖRETAGANDE MINDRE MÄTNING I SYFTE ATT TITTA PÅ INTRESSET FÖR MENTORSKAP VID START AV FÖRETAG Kund: Unionen Kontakt: Åsa.
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Smittspårarutbildning
DATORKUNSKAP Introduktionsföreläsning
Kartminne En serie bilder som ger övning av ”rutinen” Tänk på: –Vart är jag på väg? –Varifrån är kontrollen lättast att ta? –Vilken är sista säkra? –Förenkla.
Presentation of I. Name: Disputerat nu vår Forskningsintresset är:
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Förskoleenkät Föräldrar 2012 Förskoleenkät – Föräldrar Enhet:Hattmakarns förskola.
Anders Broberg, Programspråksteoridelen DVA Moment 2 1 Epost: Hemsida: Tel: Rum: D438.
Grundskola Elever 2013 Grundskoleenkät - Elever Enhet: Gillberga skola.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Program. Symboliska samband Symboliska beteenden Matematisk kausalitet (orsak – verkan) 2x = y, y = x^2, y = kx + l.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Presentationens avskrift:

Copyright © 2007 Addison-Wesley. All rights reserved.1-1 “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-2 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-3 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-4 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-5 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-6

Copyright © 2007 Addison-Wesley. All rights reserved.1-7 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-8 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-9 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-10 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-11

Copyright © 2007 Addison-Wesley. All rights reserved.1-12 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-13 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-14 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-15 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-16

Copyright © 2007 Addison-Wesley. All rights reserved.1-17 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-18 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 Everything for Everybody: PL/I Designat av IBM och SHARE Datoriseringsläget i 1964 (från IBMs perspektiv) –Naturvetenskaplig användning IBM 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-20

Copyright © 2007 Addison-Wesley. All rights reserved.1-21 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-22 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-23 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-24 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-25 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-26 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 text- processering

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

Copyright © 2007 Addison-Wesley. All rights reserved.1-28 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-29

Copyright © 2007 Addison-Wesley. All rights reserved.1-30 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-31 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-32 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-33

Copyright © 2007 Addison-Wesley. All rights reserved.1-34 Pascal 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 talet var Pascal det mest använda språket inom programmeringsundervisning

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

Copyright © 2007 Addison-Wesley. All rights reserved.1-36 C 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-37 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-38 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 databas- system 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-39

Copyright © 2007 Addison-Wesley. All rights reserved.1-40 “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-41 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-42 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-43

Copyright © 2007 Addison-Wesley. All rights reserved.1-44 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-45

Copyright © 2007 Addison-Wesley. All rights reserved.1-46 Att kombinera imperativ och objekt- orienterad 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-47 Besläktade OOP-språk Eiffel (designat av Bertrand Meyer ) –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-48

Copyright © 2007 Addison-Wesley. All rights reserved.1-49 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-50 Java: utvärdering Eliminerade de farliga/otrygga dragen hos C++ Concurrency features Bibliotek för applets, GUIs, databasaccess Portabelt: Java Virtual Machine, JIT- kompilatorer 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, 7.0, update 17 4/3/13 –security alert!

Copyright © 2007 Addison-Wesley. All rights reserved.1-51 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-52

Copyright © 2007 Addison-Wesley. All rights reserved.1-53 “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-54 Markup/Programmering hybridspråk XSLT –eXtensible Markup Language (XML): ett metamarkupspråk –eXtensible Stylesheet Language Transformation (XSTL) transformerar XML-dokument för visning –Programmeringskonstruktioner (ex. loop) JSP –Java Server Pages: en samling teknologier för att stöda dynamiska webbdokument –servlet: ett Javaprogram som ligger på en webbserver; servlet’s output visas i browsern

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