Presentation laddar. Vänta.

Presentation laddar. Vänta.

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

Liknande presentationer


En presentation över ämnet: "Copyright © 2007 Addison-Wesley. All rights reserved.1-1 “The First Step Toward Sophistication: ALGOL 60” Utvecklingsomgivning –FORTRAN hade (just och."— Presentationens avskrift:

1 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

2 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 (./,)

3 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

4 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”

5 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

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

7 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

8 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

9 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

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

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

12 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

13 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”

14 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)

15 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)

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

17 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)

18 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

19 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

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

21 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

22 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

23 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

24 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

25 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

26 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

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

28 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

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

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

31 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

32 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)

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

34 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

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

36 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

37 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

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

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

40 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)

41 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

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

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

44 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

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

46 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

47 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++

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

49 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)

50 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!

51 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

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

53 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”

54 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

55 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


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

Liknande presentationer


Google-annonser