Olio-ohjelmointikielten historia - PowerPoint PPT Presentation

About This Presentation
Title:

Olio-ohjelmointikielten historia

Description:

Title: Olio-ohjelmointikielten historia Author: Masse Last modified by: Masse Created Date: 1/30/2006 11:52:19 AM Document presentation format: On-screen Show – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 30
Provided by: Mass128
Category:

less

Transcript and Presenter's Notes

Title: Olio-ohjelmointikielten historia


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

2
Sisältö
  • Ennen olio-ohjelmointikieliä
  • 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 (http//www.tiobe.com/index.htm?tiobe_index)
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 MITssä
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
  • Begin
  • OutText("Hello World!")
  • OutImage
  • End
  • REF(Greetings) hello
  • hello - New Greetings
  • End of program

14
Smalltalk
  • Alan Kay suunnitteli Smalltalkin 1960- ja
    1970-lukujen vaiheessa Xerox PARC -keskuksessa
  • Ensimmäinen Smalltalk-alusta oli ohjelmoitu
    Basicilla ja osasi laskea yhteen 3 4.
  • 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
Collectiongtgtselect 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 (newCol
lection) merkkijonoon
17
(No Transcript)
18
C
  • Bjarne Stroustrup kehitti vuonna 1983 Bellin
    laboratoriossa ATTllä
  • 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 ltiostreamgt // stdcout
  • int main()
  • stdcout ltlt "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-ohjelmoint
    iin
  • WebRunner (sittemmin HotJava) oli ensimmäinen
    Javaa suorittava selain
  • Java 1.0a ja HotJava olivat ladattavissa jo 1994
  • Java ilmestyi ensimmäistä kertaa 23.5.1995
  • 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)
  • MSn oma .NET ympäristö olemassa Windows
    käyttöjärjestelmän lisäksi OSXlle sekä
    FreeBSDlle
  • 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
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com