815338A Ohjelmointikielten periaatteet

Koko: px
Aloita esitys sivulta:

Download "815338A Ohjelmointikielten periaatteet"

Transkriptio

1 815338A Ohjelmointikielten periaatteet II Ohjelmointikielten kehityshistoriaa

2 Sisältö 1. Ohjelmointikielten sukupolvet 2. Pääohjelmointikielten kehitys A Ohjelmointikielten periaatteet, Kielten historiaa 2

3 II.1 Ohjelmointikielten sukupolvet Yleisesti erotetaan viisi sukupolvea Jakoperusteet epäselvät: vain 1. ja 2. sukupolvi lähes kaikissa jaotteluissa sama Ensimmäinen sukupolvi: Puhtaat konekielet Binäärimuotoisia konekielisiä komentoja Ohjelmointi äärimmäisen hankalaa ja virhealtista Toinen sukupolvi: Symboliset konekielet (assembler languages) 1950-luvun alkupuolella Yhtä konekielistä käskyä vastasi tekstisymboli Käännettiin konekieleksi ohjelmallisesti A Ohjelmointikielten periaatteet, Kielten historiaa 3

4 II.1 Ohjelmointikielten sukupolvet (2) Kolmas sukupolvi: nykyiset korkean tason kielet Yleensä myös oliokielet lasketaan 3. sukupolveen Tarvitaan kääntäjä tai tulkki Neljäs sukupolvi: verkkoympäristöjen kielet ja tietokantojen kyselykielet Yleensä tehokkaita kirjoitettaessa lyhyitä ja yksinkertaisia ohjelmia Syntaksi lähempänä luonnollista kieltä Viides sukupolvi: Tekoälykielet Pääasiassa vielä kehitteillä Jotkut laskevat Prologin mukaan A Ohjelmointikielten periaatteet, Kielten historiaa 4

5 II.2 Pääohjelmointikielten kehitys II.2.1 Ohjelmointikielten esihistoriaa *x++=*y++ Charles Babbage (1830- ja 1840-luvuilla) ohjelmoitava laskukone (Analytical Engine) Ohjelmoijana kreivitär Ada Lovelace Ensimmäinen suunniteltu ohjelmointikieli: Plankalkül Konrad Zuse suunnitteli elektronisia laskukoneita Sodan jälkeen Zuse suunnitteli ohjelmointikieltä laskutoimitusten suorittamiseen -> Plankalkül käsikirjoituksessa 1945, julkaistiin vasta 1972 Jäi implementoimatta A Ohjelmointikielten periaatteet, Kielten historiaa 5

6 II.2.1 Ohjelmointikielten esihistoriaa (2) Ensimmäiset nykymielessä ohjelmoitavat koneet John von Neumannin ideoimana luvun loppupuolella ENIAC, Philadelphian yliopistossa elektroniputkesta koostuva ohjelmoitava laskin von Neumannin ideat 1945: 1. Loogisena perustana Turingin kone 2. Konekieliset ohjelmat talletettiin muistiin ja keskusyksikkö suoritti 3. Datalla ja ohjelmalla sama esitysmuoto -> voidaan tuottaa automaattisesti ohjelmia A Ohjelmointikielten periaatteet, Kielten historiaa 6

7 II luku. Ensimmäiset ohjelmointikielet Ensimmäinen korkean tason kieli FORTRAN (FORmula TRANslator) John Backuksen työryhmä IBM:llä Osoitti korkean tason ohjelmointikielet mahdolliseksi käytännössä -> Merkitys kielten kehityksessä suuri Käytetään edelleen (muunneltuna) Alkuperäisen FORTRANin ominaisuuksia: Tulostuksen ja syötön muotoilu, Looginen IF -lause, Toistorakenne laskurimuuttujan suhteen Tietotyypin määrittely puuttui Kääntäjä erittäin tehokas (vei suuren osan suunnitteluajasta) A Ohjelmointikielten periaatteet, Kielten historiaa 7

8 II luku. Ensimmäiset ohjelmointikielet (2) Cobol (COmmon Business Oriented Language) Yleisin kieli maailmassa (koodirivien perusteella) Kaupallisiin sovelluksiin Ei juuri vaikutusta kielten kehitykseen LISP - Ensimmäinen funktionaalinen kieli John McCarthy ja Marvin Minsky: 1958 alkaen tekoälyprojekti -> LISP (LISt Processing language) Tietorakenteet atomeja ja listoja Suuri merkitys myöhempiin kieliin, esim. roskien keruu ensimmäisenä A Ohjelmointikielten periaatteet, Kielten historiaa 8

9 II luku. Ensimmäiset ohjelmointikielet (3) ALGOL60 Vaikuttanut suuresti kielten kehitykseen ALGOL58 FOTRANin yleistys ALGOL58:aan lisättiin 1.Lohkorakenne -> ohjelmoijien käyttöön näkyvyysalue 2.Uudistettu parametrien välitys aliohjelmille 3.Aliohjelmien rekursiivisuus 4.Pinodynaamisten taulukoiden käyttö Standardi algoritmien esitysmuoto 1990-luvulle ACM:n virallinen muoto Euroopassa melko yleinen, USA:ssa harvinainen A Ohjelmointikielten periaatteet, Kielten historiaa 9

10 II luku. Räjähdysmäinen kehitys Kehitettiin satoja uusia kieliä Esimerkiksi: AESOP, BASEBALL, COGO, DEACON, EOL, FLAP, GRAF, HAL/S, ICES, JOSS, KLS, LOLITA, MADCAP, NELIAC, OPS, PAT, QUIKTRAN, RECOL, STRESS, TREET, UNICODE, VITAL, WATFOR ja XPOP A Ohjelmointikielten periaatteet, Kielten historiaa 10

11 II luku. PL/I Yritys kehittää yleiskieli (IBM 1964) Ensimmäisenä formaalisti määritelty semantiikka Uusia piirteitä, joita ei muissa kielissä, mm. 1.Mahdollisuus rinnakkaisiin toimintoihin 2.Poikkeusten käsittely 3.Osoitintietotyyppi Kielestä tuli erittäin laaja ja vaikeasti hallittava Käytettiin ja 1970-luvuilla varsin laajasti Vielä käytössä IBM-ympäristössä A Ohjelmointikielten periaatteet, Kielten historiaa 11

12 II luku. BASIC Beginner s All-purpose Symbolic Instruction Code Ollut yleisimpiä mikrotietokoneiden kieliä Kehitettiin Dartmouth Collegessa työkaluksi humanististen alojen opiskelijoille -> Kielestä tehtiin varsin yksinkertainen Ei lohkorakennetta -> ohjelmat hankalasti strukturoitavia Ensimmäinen yleisesti käytetty menetelmä hoitaa etäpääteyhteys keskustietokoneeseen Useita versioita A Ohjelmointikielten periaatteet, Kielten historiaa 12

13 II luku. Simula Ensimmäinen oliokieli, tarkoitettu simulointiin Ensimmäinen versio: 1962 norjalaiset Kristen Nygaard ja Ole-Johan Dahl Tunnetuin versio Simula 67 Vaikutteita ALGOL60:stä Ensimmäinen kieli rinnakkaiseen ohjelmointiin -> Tarve olioille -> Luokkakäsite Periytyminen toteutettu Roskien keruu Ei kovin yleisesti käytössä, oliomallin hyödyllisyyttä ei tunnistettu A Ohjelmointikielten periaatteet, Kielten historiaa 13

14 II luku. Rakenteinen ohjelmointi Vastareaktio 1960-luvun sekamelskalle *x++=*y++ Avainsanoja yksinkertaisuus, johdonmukaisuus ja rakenteellisuus -> rakenteinen ohjelmointi (structured programming) Useat 1970-luvun kielet suunniteltiin nimenomaan rakenteiseen ohjelmointiin A Ohjelmointikielten periaatteet, Kielten historiaa 14

15 II luku. Pascal Niklaus Wirth 1971: suunnitteluperiaatteena yksinkertaisuus Tarkoituksena osoittaa, että yksinkertainenkin kieli voi olla ilmaisuvoimainen Tietotyyppijärjestelmä: muutama alkeistietotyyppi ja mahdollisuus määritellä uusia, rakenteisia tietotyyppejä Yleisin ohjelmoinnin opetuskieli Ei merkittävää suosiota ohjelmistokehityksessä Pascalin murteita käytetty Vaikutusta uudempiin kieliin A Ohjelmointikielten periaatteet, Kielten historiaa 15

16 II luku. C Dennis Ritchie, Bell Labs n Kehitetty järjestelmäohjelmointiin UNIX kirjoitettiin uudestaan C:llä Suosio ainakin osittain tästä syystä Joustava ja tehokkaasti käännettävä Erittäin suosittu -> suuri vaikutus muihin kieliin A Ohjelmointikielten periaatteet, Kielten historiaa 16

17 II luku. Prolog Ensimmäinen logiikkakieli 1970-luvun alkupuolella tekoälytutkimuksen piiristä Perusrakenteen suunnittelivat Colmerauer, Roussel ja Kowalski Ensimmäinen Prolog-tulkki implementoitiin Marseillessa vuonna 1972 Käyttää predikaattikalkyyliä esitystapanaan Sovelluskohteet enimmäkseen tekoälysovelluksissa A Ohjelmointikielten periaatteet, Kielten historiaa 17

18 II luku. Smalltalk Ensimmäinen moderni oliokieli Alku Alan Kayn ideoista ja kehitystyöstä Xeroxin Palo Alton tutkimuskeskuksessa Vaikutteita LISPistä ja Simulasta Kaikki asiat olioita, oliot kommunikoivat keskenään lähettämällä ja vastaanottamalla viestejä Luokkien perusluokkana Object luokka Myös täydellinen ohjelmointiympäristö Ikkunoihin pohjautuva käyttöliittymä Smalltalkin peruja A Ohjelmointikielten periaatteet, Kielten historiaa 18

19 II luku. Olio-ohjelmointi yleistyy II C Bjarne Stroustrup Bellin laboratoriossa C with classes Vaikutteita Simula 67:stä ja Smalltalkista Ennen Javaa yleisimmin käytetty oliokieli Pohjautui yleisesti käytettyyn C-kieleen Saatavissa tehokkaita ja edullisia kääntäjiä Peri C-kielen turvattomia piirteitä Laaja ja monimutkainen Suosio silti pysynyt suurena A Ohjelmointikielten periaatteet, Kielten historiaa 19

20 II luku. Ada Ensimmäinen vakiintunut versio versio jossa oliotuki Suunnittelu ohjelmointikielten historian laajin ja kallein suunnitteluprojekti Perustui eri vaihtoehtojen kilpailuttamiseen Syntaksi perustuu Pascaliin Pakkaukset, joiden avulla voidaan kapseloida datatyyppejä ja aliohjelmia Monipuolinen poikkeusten käsittely Geneerinen ohjelmointi Rinnakkainen ohjelmointi A Ohjelmointikielten periaatteet, Kielten historiaa 20

21 II luku. Muita kieliä Eiffel Puhdas olio-ohjelmointikieli, suunnitellut ranskalainen Bertrand Meyer Suppeampi ja yksinkertaisempi kuin C++ Skriptikieliä kehittyi, mm. Perl Suunnittelija Larry Wall 1987 Sopii hyvin CGI-ohjelmointiin joten yleistyi WWW:n myötä A Ohjelmointikielten periaatteet, Kielten historiaa 21

22 II luku. WWW-ohjelmointi II Java Alunperin sulautettujen järjestelmien ohjelmointikieleksi Tunnetuksi 1990-luvun puolivälissä Internetin käytön yleistyessä Pääsuunnittelija James Gosling Pääkriteerinä luotettavuus Alunperin harkitut C ja C++ hylättiin ja päätettiin kehittää kokonaan uusi kieli Syntaksi ja monet ominaisuudet C++:an kaltaiset Ei erityisen omaperäinen Suosio tekee merkittäväksi A Ohjelmointikielten periaatteet, Kielten historiaa 22

23 II luku. Java (2) Vertailu: Java vs. C++. Java suunniteltu yksinkertaisemmaksi ja luotettavammaksi: 1. Osoittimista tietotyyppinä luovuttu 2. Moniperintä jätetty pois 3. Operaattorien ylikuormitus jätetty pois 4. Lisätty tuki rinnakkaiselle ohjelmoinnille 5. Lisätty automaattinen roskien keruu A Ohjelmointikielten periaatteet, Kielten historiaa 23

24 II luku. Muita oliokieliä Objective-C Kehitetty 1980-luvun puolivälissä (Brad Cox & Tom Love) Alkujaan C-kielen kevyt oliolaajennus Tunnetuksi 1990-luvulla MAC OS X:n natiivina kielenä Delphi Borland (1995) sisältää visuaalisen kehitysympäristön ja ohjelmointikielen Kielenä Pascaliin pohjautuva oliokieli A Ohjelmointikielten periaatteet, Kielten historiaa 24

25 II luku. Haskell Ensimmäinen versio 1990 Puhtaasti funktionaalinen kieli Perusrakenne lista Käyttää laiskaa laskentaa Käytössä myös kaupallisissa sovelluksissa A Ohjelmointikielten periaatteet, Kielten historiaa 25

26 II luku. Skriptikielet WWW-ohjelmointi edesauttoi kehitystä PHP Rasmus Lerdorff vuonna 1994 Palvelinpuolen skriptikieli JavaScript Brendan Eich Netscapella (aluksi Mocha) Ajetaan tyypillisesti selaimessa A Ohjelmointikielten periaatteet, Kielten historiaa 26

27 II luku. Skriptikielet (2) Python Guido van Rossum 1990 Tukee monia ohjelmointiparadigmoja Ruby Yukihiro Matsumoto 1995 Puhdas oliokieli A Ohjelmointikielten periaatteet, Kielten historiaa 27

28 II luku C# Microsoftin.NET-alustan kieli Pohjautuu Javaan ja C++:aan, vaikutteita Delphistä D Oliosuuntautunut yleiskieli käytännön ohjelmointiin Suunniteltu C++:n korvaajaksi A Ohjelmointikielten periaatteet, Kielten historiaa 28

Ohjelmointikielten kehityshistoriaa

Ohjelmointikielten kehityshistoriaa Ohjelmointikielten kehityshistoriaa Tässä osassa tarkastellaan tavallisimpien ja ohjelmointikielten kehityksen kannalta merkittävien kielten kehityshistoriaa. Pääasiallisena lähteenä on käytetty Sebestan

Lisätiedot

812341A Olio-ohjelmointi, I Johdanto

812341A Olio-ohjelmointi, I Johdanto 812341A Olio-ohjelmointi, 2016 I Johdanto Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden kertausta 812341A Olio-ohjelmointi, Johdanto 2 1 Abstraktiosta

Lisätiedot

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin 812347A Olio-ohjelmointi, 2015 syksy 2. vsk II Johdanto olio-ohjelmointiin Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden esittely 2 II.1 Abstraktiosta

Lisätiedot

Johdanto Meta Kielten jaotteluja Historia. Aloitusluento. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho

Johdanto Meta Kielten jaotteluja Historia. Aloitusluento. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho Aloitusluento TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 8. tammikuuta 2007 Luennoija Antti-Juhani Kaijanaho

Lisätiedot

Olio-ohjelmointi Johdanto olio-ohjelmointiin

Olio-ohjelmointi Johdanto olio-ohjelmointiin Olio-ohjelmointi Johdanto olio-ohjelmointiin Ohjelmistoa kehitettäessä voidaan tunnistaa ainakin kaksi abstraktiota: prosessiabstraktio ja dataabstraktio. Prosessiabstraktio huomattiin jo varhain, koska

Lisätiedot

Johdatus ohjelmointiin

Johdatus ohjelmointiin Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 I Johdanto Sisältö 1. Ohjelmointikielen määritelmä 2. Syitä tutkia ohjelmointikieliä 3. Ohjelmointiparadigmat 4. Suunnittelu- ja arviointikriteerit 5. Suunnitteluun

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015

815338A Ohjelmointikielten periaatteet 2014-2015 815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto

Lisätiedot

Ruby. Tampere University of Technology Department of Pervasive Computing TIE Principles of Programming Languages

Ruby. Tampere University of Technology Department of Pervasive Computing TIE Principles of Programming Languages Tampere University of Technology Department of Pervasive Computing TIE-20306 Principles of Programming Languages Ruby Ryhmä 8 Juho Rintala Sami Paukku Sisällysluettelo 1 Johdanto... 3 2 Paradigma... 3

Lisätiedot

Maarit Harsu. O h j e l m o i n t i k i e l e t Periaatteet, käsitteet, valintaperusteet

Maarit Harsu. O h j e l m o i n t i k i e l e t Periaatteet, käsitteet, valintaperusteet Maarit Harsu O h j e l m o i n t i k i e l e t Periaatteet, käsitteet, valintaperusteet 6. elokuuta 2012 c 2012 Maarit Harsu Tämän Ohjelmointikielet-teoksen käyttöoikeutta koskee Creative Commons Nimeä-

Lisätiedot

Varhaiset oliokielet Modula, CLU ja Smalltalk. T : Seminar on the History of Programming Languages Kari Koskinen Otaniemi 29.9.

Varhaiset oliokielet Modula, CLU ja Smalltalk. T : Seminar on the History of Programming Languages Kari Koskinen Otaniemi 29.9. Varhaiset oliokielet Modula, CLU ja Smalltalk T-106.5800: Seminar on the History of Programming Languages Kari Koskinen Otaniemi 29.9.2009 Luennon sisältö Modula CLU (CLUster programming language) Smalltalk

Lisätiedot

TIE542 Ohjelmointikielten periaatteet, syksy Antti-Juhani Kaijanaho. 6. syyskuuta 2010

TIE542 Ohjelmointikielten periaatteet, syksy Antti-Juhani Kaijanaho. 6. syyskuuta 2010 TIE542 periaatteet, syksy 2010 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. syyskuuta 2010 Sisällys Esia Oppimistavoitteet arvolauseelle 1 Kurssin suorittanut opiskelija kykenee vertailemaan ohjelmointikieliä

Lisätiedot

Common Lisp Object System

Common Lisp Object System Common Lisp Object System Seminaarityö Tomi Vihtari Ohjelmointikielten periaatteet kevät 2004 Helsingin Yliopisto Tietojenkäsittelytieteen laitos Järvenpää 5. huhtikuuta 2004 Sisältö 1 Johdanto... 1 2

Lisätiedot

TIEA255 Tietotekniikan teemaseminaari ohjelmointikielet ja kehitysalustat. Antti-Juhani Kaijanaho. 16. helmikuuta 2011

TIEA255 Tietotekniikan teemaseminaari ohjelmointikielet ja kehitysalustat. Antti-Juhani Kaijanaho. 16. helmikuuta 2011 TIEA255 Tietotekniikan teemaseminaari ohjelmointikielet ja kehitysalustat Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. helmikuuta 2011 Sisällys Sisällys Ohjelmointikieli? programming language n. a

Lisätiedot

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010

Prolog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010 kielenä 9. joulukuuta 2010 Historia kielenä Historia Sovelluksia kehitettiin vuonna 1972 Kehittäjinä ranskalaiset Pääkehittäjä Alain Colmerauer Philippe Roussel programmation en logique Robert Kowalski

Lisätiedot

Johdantoa ohjelmointikielten periaatteisiin

Johdantoa ohjelmointikielten periaatteisiin Johdantoa ohjelmointikielten periaatteisiin Antti-Juhani Kaijanaho 12. tammikuuta 2009 1 Kurssin järjestelyitä 1.1 Opettajat Luennot Antti-Juhani Kaijanaho (antti-juhani.kaijanaho@jyu.fi), Ag C416.1, vastaanotto

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Tietojenkäsittelyn historiaa

Tietojenkäsittelyn historiaa Tietojenkäsittelyn historiaa 1.1 Ensimmäiset tietokoneet PC:t 1960 2001 1950 Suuret tietokoneet laskentaan, tilastoihin, tutkimukseet 1970-luku Sovellukset Henkilökohtai set työasemat ESIHISTORIAA 1.2

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Imperatiivisten ohjelmien organisointiparadigmojen. historia

Imperatiivisten ohjelmien organisointiparadigmojen. historia Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsingin yliopisto, tietojenkäsittelytieteen laitos Tietojenkäsittelytieteen historia -seminaari, kevät 2007 Sisältö Paradigma,

Lisätiedot

Imperatiivisten ohjelmien organisointiparadigmojen historia

Imperatiivisten ohjelmien organisointiparadigmojen historia Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsingin yliopisto, tietojenkäsittelytieteen laitos Tietojenkäsittelytieteen historia -seminaari, kevät 2007 Sisältö Paradigma,

Lisätiedot

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen ohjelmointiin Jukka Talvitie Valvoja: Professori Jorma Jormakka Paikka: TietoEnator oyj Ongelma Ideologia Lifebelt

Lisätiedot

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

Lisätiedot

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 1: Ohjelmoinnin perusteita. Ohjelmoinnin kehityssuuntia. Ohjelmointi 50-60 luvuilla. Ohjelmointi 80-90 luvuilla

Sisällys. JAVA-OHJELMOINTI Osa 1: Ohjelmoinnin perusteita. Ohjelmoinnin kehityssuuntia. Ohjelmointi 50-60 luvuilla. Ohjelmointi 80-90 luvuilla JAVA-OHJELMOINTI Osa 1: Ohjelmoinnin perusteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Sisällys Ohjelmoinnin kehityssuuntia Ohjelman kehittäminen Algoritmin käsite Muuttujan käsite

Lisätiedot

Ohjelmoinnista. Ohjelmien toteutukseen tarjolla erilaisia välineitä:

Ohjelmoinnista. Ohjelmien toteutukseen tarjolla erilaisia välineitä: Ohjelmien toteutukseen tarjolla erilaisia välineitä: perinteiset ohjelmointikielet eri tyyppisiä eri paradigmat eri tarkoituksiin ohjelmointiympäristöt kieli + tukiympäristö (kieliherkkä toimitin, debuggeri,

Lisätiedot

Ohjelmointikielien kehittyminen

Ohjelmointikielien kehittyminen hyväksymispäivä arvosana arvostelija Ohjelmointikielien kehittyminen Hannu-Pekka Rajaniemi Helsinki 28.4.2006 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 11: Ohjelmointi Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al. Luennon aiheet Ohjelmoinnin historia

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Aliohjelmat, foreign function interface Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 3. 2013 Sisältö 1 Aliohjelmien käyttäminen

Lisätiedot

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma) .NET ja C# Virtuaalikone Periaate Virtuaalikone on tapa abstrahoida allaoleva toteutus yhteisen rajapinnan taakse. Virtuaalikoneet muodostavat hierarkian. Hierarkiassa ylempänä oleva käyttää alemman tarjoamaa

Lisätiedot

Tällä kurssilla tarkastellaan ohjelmointikieliä. Lienee tarpeen yrittää rajata, mitä

Tällä kurssilla tarkastellaan ohjelmointikieliä. Lienee tarpeen yrittää rajata, mitä Luku 1 Johdanto Ohjelmointi on ongelmien ratkaisemista. Asiaa voi katsoa kahdelta kannalta: voi keskittyä ymmärtämään ongelmaa tai ratkaisumalleja. Voidaan ajatella, että maailma jakautuu kahteen osaan,

Lisätiedot

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi

Lisätiedot

ADA. Ohjelmointikieli. Ryhmä 5 Henna Olli, Päivi Hietanen

ADA. Ohjelmointikieli. Ryhmä 5 Henna Olli, Päivi Hietanen ADA Ohjelmointikieli Ryhmä 5 Henna Olli, Päivi Hietanen 1 JOHDANTO Ada on käännettävä ohjelmointikieli, joka kehitettiin vähentämään sulautettujen ja reaaliaikaisten järjestelmien käyttökustannuksia. Kieli

Lisätiedot

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli TIE-20306 PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli Seminaariesitelmä ryhmä 24 Markku Ahokas Jani Kuitti i SISÄLLYSLUETTELO 1. YLEISTÄ EIFFELISTÄ... 1 1.1 Historia ja tausta... 1 1.2

Lisätiedot

TIE Principles of Programming Languages CEYLON

TIE Principles of Programming Languages CEYLON TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 VI Funktionaalinen ohjelmointi Sisältö 1. Johdanto ja peruskäsitteitä 2. LISP- ja Scheme-kielet 3. Haskell 4. IO funktionaalisissa kielissä 5. Muita funktionaalisia

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Pienen ohjelmointikielen tulkki (ohjelmoitava laskin) (mm. SICP 4-4.1.5 osin) Riku Saikkonen 15. 11. 2012 Sisältö 1 Nelilaskintulkki, globaalit muuttujat

Lisätiedot

Ohjelmointikielten periaatteiden taustaa

Ohjelmointikielten periaatteiden taustaa Ohjelmointikielten periaatteiden taustaa Antti-Juhani Kaijanaho 8. tammikuuta 2007 How many times do I have to tell you? The right tool for the right job! Scotty elokuvassa Star Trek V Ohjelmointi on ongelmien

Lisätiedot

1. Ohjelmoinnin peruskäsitteet ja -elementit

1. Ohjelmoinnin peruskäsitteet ja -elementit 1. Ohjelmoinnin peruskäsitteet ja -elementit 1. ohjelmoinnin periaatteet 2. ohjelmointikielet 3. algoritmien suunnittelu 1 1.1 Ohjelmoinnin periaatteet Vaatimukset Määrittely Suunnittelu Toteutus Integrointi

Lisätiedot

TIE Principles of Programming Languages. Seminaariesityksen essee. Ryhmä 18: Heidi Vulli, Joni Heikkilä

TIE Principles of Programming Languages. Seminaariesityksen essee. Ryhmä 18: Heidi Vulli, Joni Heikkilä TIE-20306 Principles of Programming Languages Seminaariesityksen essee Ryhmä 18: Heidi Vulli, Joni Heikkilä SISÄLLYSLUETTELO 1. Johdanto... 1 2. Ohjelmointikielen perusperiaatteet... 1 2.1 Paradigmat...

Lisätiedot

ELEC-C7110 Informaatioteknologian perusteet

ELEC-C7110 Informaatioteknologian perusteet ELEC-C7110 Informaatioteknologian perusteet Kalevi Kilkki Tietoliikenne- ja tietoverkkotekniikan laitos Tietojenkäsittelyn perusteista 20.2. & 22.2.2017 Kurssin ohjelma» Kalevi Kilkki Luennot ja kurssin

Lisätiedot

Ohjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen (1300698)

Ohjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen (1300698) Ohjelmointi Linuxissa Tehnyt: Antti Martikainen (1300698) Sisällysluettelo 1. Mitä tarvitaan sovellusten tuottamiseen?...1 2. GNU Toolchain...2 3. Tekstieditorit...2 4. Hello world-sovelluksen luominen

Lisätiedot

The OWL-S are not what they seem

The OWL-S are not what they seem The OWL-S are not what they seem...vai ovatko? Verkkopalveluiden koostamisen ontologia OWL-S Seminaariesitelmä 15.4.2013 Emilia Hjelm Internet on hankala Nykyinternet on dokumenttien verkko Asiat, joita

Lisätiedot

Koka. Ryhmä 11. Juuso Tapaninen, Akseli Karvinen. 1. Taustoja 2. Kielen filosofia ja paradigmat 3. Kielen syntaksia ja vertailua JavaScriptiin Lähteet

Koka. Ryhmä 11. Juuso Tapaninen, Akseli Karvinen. 1. Taustoja 2. Kielen filosofia ja paradigmat 3. Kielen syntaksia ja vertailua JavaScriptiin Lähteet Koka Ryhmä 11 Juuso Tapaninen, Akseli Karvinen 1. Taustoja 2. Kielen filosofia ja paradigmat 3. Kielen syntaksia ja vertailua JavaScriptiin Lähteet 1 1. Taustoja Koka on Daan Leijenin ja Microsoft:n kehittämä

Lisätiedot

Ohjelmistojen varhaisesta kehityksestä 1952-1968. Tommi Kärkkäinen (Ceruzzi ss. 79-108)

Ohjelmistojen varhaisesta kehityksestä 1952-1968. Tommi Kärkkäinen (Ceruzzi ss. 79-108) Ohjelmistojen varhaisesta kehityksestä 1952-1968 Tommi Kärkkäinen (Ceruzzi ss. 79-108) Johdantoa There will be no software in this man s army! (Dwight D. Eisenhower, 1947) Fortran-kieli sekä ohjelmoinnin

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 V Abstraktit tietotyypit ja olioohjelmointi Sisältö I. Abstraktit tietotyypit II. 1. Johdatus abstrakteihin tietotyyppeihin 2. Abstraktit tietotyypit Adassa

Lisätiedot

ITKA203 Käyttöjärjestelmät, kesä Kesäkurssi Opettaja: Paavo Nieminen

ITKA203 Käyttöjärjestelmät, kesä Kesäkurssi Opettaja: Paavo Nieminen Kesäkurssi 22.5.-27.7.2007 Opettaja: Paavo Nieminen Luento 3 24.5.2007 Ohjelmointi ja ohjelmointikieli suoritus ja konekieli Aiheet: Pääteyhteys ja interaktiivisen shellin käytön idea;

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 VII Logiikkaohjelmointi Sisältö 1. Johdanto 2. Predikaattilogiikan käsitteistöä 3. Prolog 815338A Ohjelmointikielten periaatteet, Logiikkaohjelmointi 2

Lisätiedot

D-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen

D-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen D-OHJELMOINTIKIELI AA-kerho, 33 Antti Uusimäki Arto Savolainen 2 D-OHJELMOINTIKIELI D-kielen historia alkaa vuodesta 1999, kun Walter Bright aloitti uuden ohjelmointikielen kehittämisen. Ensimmäinen versio

Lisätiedot

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys WWW-OHJELMOINTI 1 WWW-ohjelmoinnin kokonaisuus SGML, XML, HTML WWW-selaimen sovellusohjelmointi WWW-palvelimen sovellusohjelmointi Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 26.10.2000

Lisätiedot

JOHDATUS OHJELMOINTIIN

JOHDATUS OHJELMOINTIIN JOHDATUS OHJELMOINTIIN MAURI HEINONEN 14.1.2008 Tiivistelmä Tässä oppaassa on käyty lävitse ohjelmoinnin perusteita, lähtien liikkeelle siitä, mitä ohjelmointi oikeastaan on ja mitä erilaiset termit ohjelmoinnissa

Lisätiedot

Ohjelmointikielen määritteleminen (tai edes tyhjentävä luonnehtiminen) on todella vaikeaa. Voisi yrittää vaikka näin:

Ohjelmointikielen määritteleminen (tai edes tyhjentävä luonnehtiminen) on todella vaikeaa. Voisi yrittää vaikka näin: Luku 1 Johdanto 1.1 Ohjelmoinnista Ohjelmointi on ongelmien ratkaisemista. Asiaa voi katsoa kahdelta kannalta: voi keskittyä ymmärtämään ongelmaa tai ratkaisumalleja. Voidaan ajatella, että maailma jakautuu

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen

Lisätiedot

C++ Kuva 1-1. C- ja C++ kielien perustana olevat kielet.

C++ Kuva 1-1. C- ja C++ kielien perustana olevat kielet. 1. JOHDANTO C-kieli on perustana useille muille ohjelmointikielille. Esimerkiksi C++-kieli on kehitetty C- kielestä, Java- ja C#-kielen syntaksin perustana on toiminut C-kieli ja useat muutkin ohjelmointikielet

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset 815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka

Lisätiedot

Teollisuusautomaation standardit Osio 9

Teollisuusautomaation standardit Osio 9 Teollisuusautomaation standardit Osio 9 Osio 1: SESKOn Komitea SK 65: Teollisuusprosessien ohjaus Osio 2: Toiminnallinen turvallisuus: periaatteet Osio 3: Toiminnallinen turvallisuus: standardisarja IEC

Lisätiedot

Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola. Tietokone. Kutomakone. Laskennan perusidea

Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola. Tietokone. Kutomakone. Laskennan perusidea Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola Koneet Teoria Ohjelmistot Suomessa Teknologia laskimet Tietokone Ohjelmoitava tietokone Ohjelmointi kutomakoneen reikäkortti

Lisätiedot

Kuisma Joentakanen PYGAME-PELIOHJELMOINTI

Kuisma Joentakanen PYGAME-PELIOHJELMOINTI Kuisma Joentakanen PYGAME-PELIOHJELMOINTI Opinnäytetyö KESKI-POHJANMAAN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Marraskuu 2010 TIIVISTELMÄ OPINNÄYTETYÖSTÄ Yksikkö Tekniikka ja liiketalous, Kokkola

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Keskeneräinen luento 3: Listat (mm. SICP 22.2.3) Riku Saikkonen 31. 10. 2011 Sisältö 1 Linkitetyt listat 2 Linkitetyt listat (SICP 2.1.1, 2.2.1) funktionaalinen

Lisätiedot

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka

Rinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka Rinnakkaisuus parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa Rinnakkaisuuden etuja: laskennan nopeutuminen (sarjoittuvat operaatiojonot) ilmaisuvoima (ongelman

Lisätiedot

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä Linux 00 Keskeiset piirteet Tux-pingviinin kuva: Larry Ewing, Simon Budig ja Anja Gerwinski Kysymyksiä 1. Mikä Linux on? 2. Kuinka Linux syntyi ja kehittyy? 3. Mitkä ovat Linuxin vahvuudet? 2 1 Linux on

Lisätiedot

JS-kehitys - yleiskuvaus. TIEA255 - Juho Vepsäläinen

JS-kehitys - yleiskuvaus. TIEA255 - Juho Vepsäläinen JS-kehitys - yleiskuvaus TIEA255 - Juho Vepsäläinen Taustaa Basic, Pascal, C (PC, AVR), Java, Object Pascal (Delphi), PHP, Python, Lua, AS2, C++ (Qt) JavaScript,... Avoimen lähdekoodin proj. kehitystä

Lisätiedot

Laiteläheinen C-kieli, yleistä

Laiteläheinen C-kieli, yleistä Laiteläheinen C-kieli, yleistä PUNOMO NETWORKS OY 23.8.2016 pva Johdanto Mikroprosessori, CPU, Central Prosessing Unit on komponentti, jonka toiminta on ohjattavissa muistiin tallennetuilla käskyillä.

Lisätiedot

Lisää pysähtymisaiheisia ongelmia

Lisää pysähtymisaiheisia ongelmia Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti

Lisätiedot

Imperatiivisten ohjelmien organisointiparadigmojen historia

Imperatiivisten ohjelmien organisointiparadigmojen historia hyväksymispäivä arvosana arvostelija Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsinki 25.2.2007 Seminaarityö: Tietojenkäsittelytieteen historia HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

Ohjelmointikielten periaatteet. Antti-Juhani Kaijanaho

Ohjelmointikielten periaatteet. Antti-Juhani Kaijanaho Ohjelmointikielten periaatteet Antti-Juhani Kaijanaho 3. marraskuuta 2010 2 Esipuhe Tämä moniste on tarkoitettu oheislukemistoksi ja luentojen tueksi Jyväskylän yliopiston tietotekniikan laitoksen kurssilla

Lisätiedot

Ohjelmointikielten periaatteet. Antti-Juhani Kaijanaho

Ohjelmointikielten periaatteet. Antti-Juhani Kaijanaho Ohjelmointikielten periaatteet Antti-Juhani Kaijanaho 26. marraskuuta 2010 2 Esipuhe Tämä moniste on tarkoitettu oheislukemistoksi ja luentojen tueksi Jyväskylän yliopiston tietotekniikan laitoksen kurssilla

Lisätiedot

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti C! C-ohjelmoinnin peruskurssi Pasi Sarolahti Mitä haluan oppia C-kurssilla? ja miksi? Tutustu lähimpään naapuriin Keskustelkaa miksi halusitte / jouduitte tulemaan kurssille 3 minuuttia è kootaan vastauksia

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Aloitusluento Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 7. tammikuuta 2008 Aikataulu Luennot salissa Ag C231.1: ma klo 10 12, to klo 14-16

Lisätiedot

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen Käyttöjärjestelmien historia Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen Käyttöjärjestelmien jaottelu Voidaan jaotella erilaisin menetelmin Aikajana (määrä,

Lisätiedot

Clojure, funktionaalinen Lisp murre

Clojure, funktionaalinen Lisp murre Clojure, funktionaalinen Lisp murre Principles of Programming Languages, S2015 Jukka Pekka Venttola & Pietari Heino Taustaa Clojuren pohjana on käytetty Lisp ohjelmointikieltä, jonka historia ulottuu 1950

Lisätiedot

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 (verkkoluento 1) Tietokonejärjestelmä Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.

Lisätiedot

TIE-20200 Ohjelmistojen suunnittelu. Luento 8..9: moniperintä

TIE-20200 Ohjelmistojen suunnittelu. Luento 8..9: moniperintä TIE-20200 Ohjelmistojen suunnittelu Luento 8..9: moniperintä 1 Ajankohtaista Harjoitustyön suunnittelusessiot pidetty, työt jatkuvat, välivaiheen esittely seuraavana Viimeinen viikkoharjoituskerta, palataan

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Käännös, linkitys ja lataus

Käännös, linkitys ja lataus Luento 10 (verkkoluento 10) Käännös, linkitys ja lataus Ohjelmasta prosessiin Käännösyksikkö Kääntämisen vaiheet Makrot, literaalit Staattinen ja dynaaminen linkitys Nimien sidonta Lausekielestä suoritukseen

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Haskell ohjelmointikielen tyyppijärjestelmä

Haskell ohjelmointikielen tyyppijärjestelmä Haskell ohjelmointikielen tyyppijärjestelmä Sakari Jokinen Helsinki 19. huhtikuuta 2004 Ohjelmointikielten perusteet - seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Johdanto 1 Tyyppien

Lisätiedot

Kertausluento luennoista 1-3 1

Kertausluento luennoista 1-3 1 Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

Lisätiedot

samalla seuraavaan puoliavaruuteen (sukupolveen), jota siivotaan harvemmin.

samalla seuraavaan puoliavaruuteen (sukupolveen), jota siivotaan harvemmin. 3.2. OLIOT 31 Myös tästä menetelmästä on olemassa muunnelmia, jotka pyrkivät vähentämään yksittäisen pysähdyksen pituutta. Nämä ovat niinsanottuja ikäperustaisia (generational) menetelmiä, joissa muisti

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, tietorakenteen muuttaminen (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 6. 11. 2012 Sisältö 1 Muuttujan arvon muuttaminen:

Lisätiedot

OHJELMOINTIKIELTEN PERIAATTEET ANTTI-JUHANI KAIJANAHO

OHJELMOINTIKIELTEN PERIAATTEET ANTTI-JUHANI KAIJANAHO OHJELMOINTIKIELTEN PERIAATTEET ANTTI-JUHANI KAIJANAHO SYKSY 2002 Copyright c 2002 Antti-Juhani Kaijanaho Permission is granted to copy, distribute and/or modify this document under the terms of the GNU

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009

Tähtitieteen käytännön menetelmiä Kevät 2009 Tähtitieteen käytännön menetelmiä Kevät 2009 2009-01-12 Yleistä Luennot Luennoija hannu.p.parviainen@helsinki.fi Aikataulu Observatoriolla Maanantaisin 10.00-12.00 Ohjattua harjoittelua maanantaisin 9.00-10.00

Lisätiedot

OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE

OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE Tuomo Riekkinen Pyhäselän koulu, Joensuu MIKSI OHJELMOINTIA MATEMATIIKKAAN? Joensuun kaupunki päätti hankkia kaikille 7. luokkalaisille

Lisätiedot

TERO LAHTINEN FUNKTIONAALISTEN JA OLIO-IMPERATIIVISTEN OHJELMISTOKOMPONENTTIEN YHDISTÄMINEN. Diplomityö

TERO LAHTINEN FUNKTIONAALISTEN JA OLIO-IMPERATIIVISTEN OHJELMISTOKOMPONENTTIEN YHDISTÄMINEN. Diplomityö TERO LAHTINEN FUNKTIONAALISTEN JA OLIO-IMPERATIIVISTEN OHJELMISTOKOMPONENTTIEN YHDISTÄMINEN Diplomityö Tarkastaja: Tommi Mikkonen Tarkastaja ja aihe hyväksytty Tieto- ja sähkötekniikan tiedekuntaneuvoston

Lisätiedot

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan

Lisätiedot

Suomalaiset ohjelmointikielet

Suomalaiset ohjelmointikielet Suomalaiset ohjelmointikielet Timo Lilja TKK 6. 10. 2009 Timo Lilja (TKK) Suomalaiset ohjelmointikielet 6. 10. 2009 1 / 24 Sisältö 1 Kieli Rakenteet Makrot Yhteenveto Lähteet 2 Shines Kieli Esimerkki 3

Lisätiedot

Olio-ohjelmoinnin toteuttaminen Fortran 90 -kielellä

Olio-ohjelmoinnin toteuttaminen Fortran 90 -kielellä Olio-ohjelmoinnin toteuttaminen Fortran 90 -kielellä Florian Berger 20.12.2002 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma Tiivistelmä Olio-ohjelmointi on ohjelmointimenetelmä, jonka

Lisätiedot

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin

Lisätiedot

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

Lisätiedot

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

Johdanto. 1. Mikä on ohjelmointikieli?

Johdanto. 1. Mikä on ohjelmointikieli? Johdanto Ohjelmoinnin opetteluun ei välttämättä tarvitse opiskella lainkaan ohjelmointikieliä: algoritmeja voidaan suunnitella ja analysoida käyttäen matemaattista tai muuta formaalia merkintätapaa. Käytännössä

Lisätiedot