Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Olio-ohjelmointikielten historia

Samankaltaiset esitykset


Esitys aiheesta: "Olio-ohjelmointikielten historia"— Esityksen transkriptio:

1 Olio-ohjelmointikielten historia
Tietojenkäsittelytieteen historia Matias Käkelä

2 Sisältö Ennen olio-ohjelmointikieliä Olio-ohjelmointikielten syntymä
Perinteiset ohjelmointikielet Olio-ohjelmointikielten syntymä Sketchpad Simula Smalltalk Olio-ohjelmoinnin suosion kasvu C++ Nykyaikaiset oliokielet Java, C# Muut olioperustaiset ohjelmointikielet Yhteenveto

3 Suosituimmat ohjelmointikielet
TIOBE Programming Community Index for January 2006 (

4 Mihin oliokieliä tarvitaan? (1)
Suosituimmat nykyaikaiset ohjelmointikielet ovat olioperustaisia Java, C#, C++ jne. Olio-ohjelmointikieliä suositaan sillä ne tarjoavat kehittyneitä välineitä ohjelmointiongelmien hallintaan Kapselointi, koodin uudelleenkäytettävyys, rakenteellinen selkeys

5 Mihin oliokieliä tarvitaan? (2)
Oliorakenne mahdollistaa joustavamman reaalimaailman ilmiöiden mallintamisen Olio-ohjelmointikieliä pidetään helpommin omaksuttavina

6 Ennen oliokieliä Tietokoneiden historian alkuvaiheessa ohjelmoitiin suoraan konekielellä Pian huomattiin tarve korkeamman tason kielille Syntyi mm. Algol ja Fortran Kielet pyrkivät helpottamaan ohjelmointiongelmia jakamalla niitä pienempiin osaongelmiin – aliohjelmiin

7 Oliokielten syntymä Ensimmäiset viitteet oliokielistä tulivat Sketchpad –ohjelmasta Ivan Sutherland kehitti 1963 vallan-kumouksellisen tietokoneohjelman Sketchpad oli piirto-ohjelma, ja sitä on sanottu CAD-ohjelmien isäksi Sketchpad oli samalla myös ensimmäinen graafista käyttöliittymää hyödyntänyt ohjelma

8 Oliokielten syntymä (2)
Sketchpadissa grafiikkaelementtejä käsiteltiin olioina ja niiden instansseina Pääoliota muokattaessa muuttuivat myös kaikki siitä johdetut instanssit Käyttäjä pystyi myös muokkaamaan helposti muokkaamaan piirrosten attribuutteja

9 Ivan Sutherland Ivan Sutherland käyttämässä Sketchpadia TX-2 -tietokoneellaan MIT:ssä

10 Simula Simula oli ensimmäinen olio-ohjelmointikieli
Ole-Johan Dahl ja Kristen Nygaard kehittivät Simulan 1960-luvulla Norjan tietteellisessä laskentakeskuksessa Simula luotiin alunperin simulaatioiden tekemistä varten Reaalimaaiman ongelmien mallintamisen tarve johti olioajattelun kehittymiseen

11 Simula (2) Simula on syntaktisesti lähellä Algol60-kieltä, mutta lisäsi siihen moderneille oliokielille tyypilliset rakenteet, kuten luokat ja oliot Simula I ilmestyi 1965 Simula I oli olio-ominaisuuksiltaan vielä puutteellinen

12 Simula (3) Simula 67 ilmestyi 1967
Laajennettiin Simulaatioihin erikoistuneesta kielestä yleiseksi ohjelmointikieleksi Simula saavutti suosiota myös akateemisten piirien ulkopuolella ja on yhä käytössä BETA –kieli on Simulan seuraaja

13 Simula: Hello World Begin Class Greetings; OutText("Hello World!");
OutImage; End; REF(Greetings) hello; hello :- New Greetings; End of program;

14 Smalltalk Alan Kay suunnitteli Smalltalkin ja 1970-lukujen vaiheessa Xerox PARC -keskuksessa Ensimmäinen Smalltalk-alusta oli ohjelmoitu Basicilla ja osasi laskea yhteen Smalltalkista ilmestyi ensimmäinen toimiva toteutus vuonna 1972 Smalltalk-72 oli silti vielä hyvin kehittymätön olio-ominaisuuksiltaan

15 Smalltalk (2) Smalltalk-76 toi mukanaan huomattavia muutoksia kieleen
Periytyminen, syntaktiset muutokset, uusi kehitysympäristö, virtuaalikone Smalltalk-80 oli ensimmäinen Xeroxin ulkopuolella ilmestynyt versio Nykyään kaksi suosittua toteutusta, jotka kummatkin perustuvat Smalltalk-80-kieleen Avoin Squeak ja Cincomin VisualWorks Ruby –skriptikieli saanut vaikutteita

16 Smalltalk: Esimerkki Koodi läpikäy merkkijonomuuttujan (aBlock)
Collection>>select: aBlock | newCollection | newCollection := self species new. self do: [:each | (aBlock value: each) ifTrue: [newCollection add: each]]. ^newCollection Koodi läpikäy merkkijonomuuttujan (aBlock) kaikki kirjaimet ja lisää vokaalit palautettavaan (newCollection) merkkijonoon

17

18 C++ Bjarne Stroustrup kehitti vuonna 1983 Bellin laboratoriossa AT&T:llä Stoustrup piti Simulan oliomallista, mutta se oli liian hidas BCPL oli nopea, mutta liian laiteläheinen Alussa nimi oli C with Classes C++ -koodi käännettiin ensin C-kieleen, joka käännettiin konekielle (Cfront) Perustuu C-kieleen ja on pieniä poikkeuksia lukuun ottamatta täysin yhteensopiva Yhteensopivuus lisäsi käyttäjäkuntaa, mutta rikkoi puhtaan oliomallin

19 C++ (2) C++ sisältää mm. luokat, periytymisen, mallit (templates) ja poikkeukset Ei sisällä roskienkerääjää Saatavilla lisäkirjastona Yksi tärkeimmistä kaupallisessa ohjelmistokehityksessä käytettävistä kielistä yhä tänä päivänä Standardoitiin vasta vuonna 1998 ja standardia päivitettiin 2003 Kehitys jatkuu edelleen – tuoreimmat muutokset kieleen ovat vuodelta 2005 (Library Technical Report 1)

20 C++: Hello World /* g++ hello.cc -o hello && ./hello */
#include <iostream> // std::cout int main() { std::cout << "Hei maailma!\n"; return 0; }

21 Java Java kehitettiin Sunilla 1990-luvun alussa
Alkuperäiset kehittäjät olivat James Gosling, Mike Sheridan ja Patrick Naughton Tarkoituksena oli luoda työkalu älykkäiden päätelaitteiden ohjelmointiin Alussa kehitystiimi alkoi käyttää C++ -kieltä C++ ei ollut sopiva joten Gosling alkoi kehittää C nimistä muunnosta Java lainasi myös Objective-C –kielen ominaisuuksia Pian muunnos hylättiin ja päätettiin luoda uusi kieli Oak

22 Java (2) Oakin ensimmäinen versio valmistui 1992, jolloin sitä esiteltiin Star7 –laitteella Oakia tarjottiin kaapeli-tv- ja viihdeyhtiöille päätelaitteiden (set-top box) ohjelmointiin Asiakkaina mm. Time Warner ja 3DO Alustariippumattomuus oli etu Oak ei menestyt viihdesektorilla, joten kehitystiimi suuntasi 1994 sen internet-ohjelmointiin WebRunner (sittemmin HotJava) oli ensimmäinen Javaa suorittava selain Java 1.0a ja HotJava olivat ladattavissa jo 1994 Java ilmestyi ensimmäistä kertaa Tuki myös Netscapen selaimiin

23 Java (3) Nykyään Java on joidenkin lähteiden mukaan eniten käytetty ohjelmointikieli Sovelluksia mm. Eclipse, Azureus, NetBeans Nykyään paljon käytetty matkapuhelimissa Lähestyy kehitystiimin alkuperäistä tavoitetta

24 Java: Servlet Hello World
// Hello.java import java.io.*; import javax.servlet.*; public class Hello extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("Hello, world!"); pw.close(); }

25 java.sun.com vuonna 1995

26 Muut oliokielet Oliokieliä olemassa kymmeniä
Oberon, Eiffel, Ruby, Python… Monet kielet saaneet myöhemmin olio-ominaisuuksia Visual Basic, PHP 3, Ada 95, Delphi, Objective-C…

27 Muut oliokielet (2) Microsoftin .NET –ympäristön kielten suosio on kasvanut viimevuosina C#, J#, Visual Basic .NET, C++, JScript .NET Myös ulkopuolisten valmistamia, kuten FORTRAN, COBOL, A# eli ADA jne. Sama idea kuin Javassa: alustariippumatonta tavukoodia, joka suoritetaan virtuaalikoneella Tavukoodi on standardoitu vuonna 2001 (ECMA) ja 2003 (ISO) MS:n oma .NET –ympäristö olemassa Windows –käyttöjärjestelmän lisäksi OSX:lle sekä FreeBSD:lle DotGNU ja Mono avoimia suoritusympäristöjä

28 Yhteenveto Olio-ohjelmointi on suosituin nykyisistä ohjelmointiparadigmoista Yhdeksän vuoden 2006 kymmenestä suosituimmasta ohjelmointikielestä voidaan laskea oliokieliksi Edut: Uudelleenkäytettävyys, helpompi hallinta, parempi ymmärrettävyys Joissakin tapauksissa myös siirrettävyys, virheettömyys

29


Lataa ppt "Olio-ohjelmointikielten historia"

Samankaltaiset esitykset


Iklan oleh Google