Ohjelmointikielten periaatteet. Antti-Juhani Kaijanaho

Koko: px
Aloita esitys sivulta:

Download "Ohjelmointikielten periaatteet. Antti-Juhani Kaijanaho"

Transkriptio

1 Ohjelmointikielten periaatteet Antti-Juhani Kaijanaho 1. marraskuuta 2010

2 2

3 Sisältö 1 Johdanto Ohjelmoinnista Mikä on ohjelmointikieli Historia Kaksi ensimmäistä sukupolvea: ennen vuotta Automaattinen ohjelmointi ja ohjelmointikielten synty: Baabelin torni: 1960-luku Modernismin alku: 1970-luku Olio-ohjelmoinnin ja juontokielten nousu: 1980-luku Internetin nousu: 1990-luku Tietoturva ja rinnakkaisuus: 2000-luku Sukupolvista Kielten jaotteluja Ohjelmointikielten suunnitteluperiaatteita Kielen määrittely Toteutustekniikoista Peruskäsitteitä Metakieli kohdekieli Staattinen dynaaminen Olio Arvo Tyyppi (Nimetty) vakio Muuttuja Lohkorakenne Syntaktisia kysymyksiä Lausekkeet Formaali kielioppi

4 4 SISÄLTÖ 4 Denotationaalinen semantiikka Perusidea Muuttujat Suoraviivaohjelmat Paikalliset muuttujat Kontrollivuon ohjaus Ehtolausekkeet Erillään Yhdessä Peräkkäistys Go to Valintalauseet Toistolauseet eli silmukat Kiintopisteteoriaa Informaatiojärjestys Vahtikomennot Väitteet Lyhytaskelsemantiikka Tilat Päättely While-kieli Epädeterminismi Siirräntä Aliohjelmat Kutsusekvenssit Parametrinvälitysmekanismit Aktivaatiotietue Vuorottaisrutiinit Aliohjelmien formalisointia Lambda-kieli Syntaktiset määritelmät Denotationaalinen semantiikka Sievennykset Churchin koodaukset Laskujärjestykset

5 SISÄLTÖ 5 9 Oliokielten erityispiirteitä Olio Yksinkertainen kieli Inkrementaalinen muokkaus Prototyyppiperintä Luokkaperintä Tiedonpiilotus Moniperinnän ongelma Binäärimetodien ongelma Samanaikaisuus Samanaikainen suoritus Kriittiset lohkot Monitorit Transaktiomuisti CSP Piilaskento Logiikkaohjelmoinnin idea Logiikkakieli Korvaukset Samastus Logiikkaohjelman suoritus Samastus parametrinvälitysmekanismina Staattinen tyyppijärjestelmä Tyypitetty while-kieli Yksinkertaisesti tyypitetty lambda-kieli Tyyppijärjestelmän eheys Esimerkkikieli Säilymislemma Etenemislemma Eheyslause Tyyppipäättely: Hindley Milner Tietorakenteita Perustyyppejä Yksikkötyyppi Paikalliset muuttujat Taulukot Monikot

6 6 SISÄLTÖ 13.6 Tietueet Variantit Viitetyypit Rekursiiviset tyypit Rekursio tyypitetyssä lambda-kielessä Nimiyhtäläisyys Isorekursio Ekvirekursio Rekursiivisten tyyppien seurauksia Parametripolymorfismi Kumitus Monimuotoisuus Systeemi F Tyyppioperaattorit Alityypitys Alityypitys on osittaisjärjestys Tietueiden alityypitys Funktioiden alityypitys Top ja Bot Eksplisiittiset tyyppimuunnokset Muuttuvaiset This-tyyppi A Matematiikan kertausta 171

7 Kirjallisuutta Martín ABADI ja Luca CARDELLI, A Theory of Objects. Springer. Lloyd ALLISON, A practical introduction to denotational semantics. Numero 23 teoksessa Cambridge Computer Science Texts. Cambridge University Press. Deborah J. ARMSTRONG, The quarks of object-oriented development. Communications of the ACM, 49 (2):ss Franz BAADER ja Wayne SNYDER, Unification theory. Teoksessa Alan ROBINSON ja Andrei VORONKOV, toim., Handbook of Automated Reasoning, osa I, ss Amsterdam: Elsevier. H. P. BARENDREGT, The Lambda Calculus. Its Syntax and Semantics. Numero 103 teoksessa Studies in logic and the foundation of mathematics. Amsterdam: Elsevier, revised painos. Alexandre BERGEL, Stéphane DUCASSE, Oscar NIERSTRASZ ja Roel WU- YTS, Stateful traits and their formalization. Computer Languages, Systems & Structures, 34 (2 3):ss cl Grady BOOCH, Object-oriented analysis and design with applications. Addison Wesley, second painos. Gilad BRACHA, Martin ODERSKY, David STOUTAMIRE ja Philip WADLER, Making the future safe for the past: adding genericity to the Java programming language. Teoksessa OOPSLA 98: Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, ss New York, NY, USA: ACM. ISBN doi: Michael BRANDT ja Fritz HENGLEIN, Coinductive axiomatization of recursive type equality and subtyping. Fundamenta Informaticae, 33 (4):ss

8 176 KIRJALLISUUTTA Kim BRUCE, Luca CARDELLI, Giuseppe CASTAGNA, Jonathan EIFRIG, Scott SMITH, Valeri TRIFONOV, Gary T. LEAVENS ja Benjamin PIERCE, On binary methods. Theory and Practice of Object Systems, 1 (3) &rep=rep1&type=pdf. Luca CARDELLI, Type systems. Teoksessa Allen B. TUCKER, toim., CRC Handbook of Computer Science and Engineering. CRC, 2 painos. Luca CARDELLI ja Peter WEGNER, On understanding types, data abstraction, and polymorphism. ACM Computing Surveys, 17 (4). Alonzo CHURCH, A set of postulates for the foundation of logic. The Annals of Mathematics, Second Series, 33 (2):ss Alonzo CHURCH, A set of postulates for the foundation of logic (second paper). The Annals of Mathematics, Second Series, 34 (4):ss Alonzo CHURCH, An unsolvable problem of elementary number theory. American Journal of Mathematics, 58 (2):ss Alonzo CHURCH, The Calculi of Lambda Conversion. Princeton University Press. Haskell B. CURRY ja Robert FEYS, Combinatory Logic, osa 1. North- Holland. O.-J. DAHL, E. W. DIJKSTRA ja C. A. R. HOARE, Structured Programming. Lontoo: Academic Press. Edsger W. DIJKSTRA, Go to statement considered harmful. Communications of the ACM, 11 (3). Letter to the editor. Edsger W. DIJKSTRA, A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall. Stéphane DUCASSE, Oscar NIERSTRASZ, Nathanael SCHÄRLI, Roel WU- YTS ja Andrew P. BLACK, Traits: A mechanism for fine-grained reuse. ACM Transactions on Programming Languages and Systems, 28 (2):ss J. A. GOUGEN, J. W. THATCHER, E. G. WAGNER ja J. B. WRIGHT, Initial algebra semantics and continuous algebras. Journal of the ACM, 24 (1).

9 KIRJALLISUUTTA 177 Per Brinch HANSEN, Structured multiprogramming. Communications of the ACM, 15 (7):ss ISSN doi: / Tim HARRIS, Simon MARLOW, Simon PEYTON-JONES ja Maurice HERLI- HY, Composable memory transactions. Teoksessa PPoPP 05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, ss New York, NY, USA: ACM. ISBN doi: C. A. R. HOARE, Monitors: an operating system structuring concept. Communications of the ACM, 17 (10):ss ISSN doi: C. A. R. HOARE, Communicating sequential processes. Communications of the ACM, 21 (8):ss ISSN doi: / C. A. R. HOARE, Hints on programming language design. Teoksessa C. A. R. HOARE ja C. B. JONES, toim., Essays in Computer Science. New York: Prentice-Hall. C. A. R. HOARE, Assertions: a personal perspective. IEEE Annals of the History of Computing, 25 (2). Tony HOARE, Towards the verifying compiler. Teoksessa Olaf OWE, Stein KROGDAHL ja Tom LYCHE, toim., From Object-Orientation to Formal Methods: Essays in Memory of Ole-Johan Dahl, Lecture Notes in Computer Science, osa Springer. ISO/IEC 14977, Information lechnology Syntactic metalanguage Extended BNF. International Organization for Standardization. ISO/IEC 14977:1996(E). S. C. KLEENE, Proof by cases in formal logic. Annals of Mathematics, Second Series, 35 (3):ss S. C. KLEENE, A theory of positive integers in formal logic. Part II. American Journal of Mathematics, 57 (2):ss Donald E. KNUTH, Structured programming with go to statements. Computing Surveys, 6 (4).

10 178 KIRJALLISUUTTA Donald E. KNUTH, MMIXware: A RISC Computer for the Third Millennium, Lecture Notes in Computer Science, osa Berlin: Springer. Katso myös sivua html. Donald E. KNUTH ja Luis TRABB PARDO, The early development of programming languages. Teoksessa J. BELZER, A. G. HOLZMAN ja A. KENT, toim., Encyclopedia of Computer Science and Technology, osa 6. New York: Dekker. Julkaistu myös kirjassa Metropolis et al. (1980). Thomas E. KURTZ, Basic. Teoksessa History of programming languages I, ss New York, NY, USA: ACM. ISBN doi: John MCCARTHY, History of lisp. Teoksessa History of programming languages I, ss New York, NY, USA: ACM. ISBN doi: N. METROPOLIS, J. HOWLETT ja Gian-Carlo ROTA, toim., A History of Computing in the Twentieth Century. New York: Academic Press. Robin MILNER, A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17 (3):ss Robin MILNER, Joachim PARROW ja David WALKER, A Calculus of Mobile Processes, Part I. Tekninen Raportti ECS-LFCS-89-85, University of Edinburgh, Laboratory for Foundations of Computer Science. http: // Peter NAUR ET AL., Revised report on the algorithmic language AL- GOL 60. Communications of the ACM, 6 (1):ss John K. OUSTERHOUT, Scripting: Higher-level programming for the 21st century. Computer, 31 (3):ss Simon PEYTON JONES, toim., Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press. URL haskell98-revised/ Benjamin C. PIERCE, Foundational calculi for programming languages. Teoksessa Allen B. TUCKER, toim., Handbook of Computer Science and Engineering, luku 139. CRC Press. ~bcpierce/papers/crchandbook.ps.

11 KIRJALLISUUTTA 179 Benjamin C. PIERCE, Type and Programming Languages. Cambridge, MA: MIT Press. Benjamin C. PIERCE ja David N. TURNER, Pict: A programming language based on the pi-calculus. Teoksessa Gordon PLOTKIN, Colin STIR- LING ja Mads TOFTE, toim., Proof, Language and Interaction: Essays in Honour of Robin Milner, ss MIT Press. edu/~bcpierce/papers/pict-design.ps. G. D. PLOTKIN,???? A structural approach to operational semantics. http: //homepages.inf.ed.ac.uk/gdp/publications/sos.ps. University of Aarhus lecture notes from the early 1980s. John C. REYNOLDS, Theories of Programming Languages. Cambridge: Cambridge University Press. Hannele SALMINEN ja Jouko VÄÄNÄNEN, Johdatus logiikkaan. Jyväskylä: Gaudeamus. Jean E. SAMMET, The early history of cobol. Teoksessa History of programming languages I, ss New York, NY, USA: ACM. ISBN doi: Michael L. SCOTT, Programming Language Pragmatics. Morgan Kaufmann. Guy Lewis STEELE, Jr., Debunking the expensive procedure call myth or procedure call implementations considered harmful or, LAMBDA: The ultimate GOTO. Teoksessa James K. KETCHEL ET AL., toim., Proceedings of the 1977 annual conference, ss ACM Press. Christopher STRACHEY, Fundamental concepts in programming languages. Higher-Order and Symbolic Computation, 13:ss Perustuu Stracheyn vuonna 1967 pitämiin luentoihin. Antero TAIVALSAARI, A Critical View of Inheritance and Reusability in Object-oriented Programming. väitöskirja, University of Jyväskylä. A. VAN WIJNGAARDEN ET AL., toim., Revised Report on the Algorithmic Language Algol 68. Berliini: Springer.

TIES542 kevät 2009 Yhteismuistisamanaikaisuus

TIES542 kevät 2009 Yhteismuistisamanaikaisuus TIES542 kevät 2009 Yhteismuistisamanaikaisuus Antti-Juhani Kaijanaho 9. maaliskuuta 2009 Tehtävät ovat samanaikaiset (engl. concurrent), jos ne etenevät yhtä aikaa samalla toistensa kanssa kommunikoiden.

Lisätiedot

TIES542 kevät 2009 Oliokielten erityiskysymyksiä

TIES542 kevät 2009 Oliokielten erityiskysymyksiä TIES542 kevät 2009 Oliokielten erityiskysymyksiä Antti-Juhani Kaijanaho 16. maaliskuuta 2009 1 Moniperinnän ongelma Luku perustuu lähteeseen Ducasse et al. (2006). Perinnällä on olio-ohjelmoinnissa useita

Lisätiedot

TIES542 kevät 2009 Rekursiiviset tyypit

TIES542 kevät 2009 Rekursiiviset tyypit TIES542 kevät 2009 Rekursiiviset tyypit Antti-Juhani Kaijanaho 17. helmikuuta 2009 Edellisessä monisteessa esitetyt tietue- ja varianttityypit eivät yksinään riitä kovin mielenkiintoisten tietorakenteiden

Lisätiedot

Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006

Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006 Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet TIES341 Funktio-ohjelmointi 2 Kevät 2006 Alkuperäislähteitä Philip Wadler & Stephen Blott: How to make ad-hoc polymorphism less ad-hoc,

Lisätiedot

TIES542 kevät 2009 Tyyppijärjestelmän laajennoksia

TIES542 kevät 2009 Tyyppijärjestelmän laajennoksia TIES542 kevät 2009 Tyyppijärjestelmän laajennoksia Antti-Juhani Kaijanaho 16. helmikuuta 2009 Tyypitetyt ohjelmointikielet sisältävät paljon muitakin konstruktioita kuin yksinkertaisesti tyypitetyn lambda-kielen,

Lisätiedot

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg Matematiikan ja tilastotieteen laitos Tietojenkäsittelytieteen laitos Kisällioppiminen = oppipoikamestari

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

TIES542 kevät 2009 Oliokielten erityispiirteitä

TIES542 kevät 2009 Oliokielten erityispiirteitä TIES542 kevät 2009 Oliokielten erityispiirteitä Antti-Juhani Kaijanaho 2. maaliskuuta 2009 Oliosuuntautuneisuus (engl. object-orientation) ja olio-ohjelmointi (engl. objectoriented programming) ovat laajassa

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

TIES542 kevät 2009 Denotaatio

TIES542 kevät 2009 Denotaatio TIES542 kevät 2009 Denotaatio Antti-Juhani Kaijanaho 27.1.2009 (korjauksia 28.1.2009) Denotationaalisessa merkitysopissa kukin (ohjelmointi)kielen konstrktiolle määritellään matemaattinen otus, jota sanotaan

Lisätiedot

Ohjelmointikielten periaatteet Syksy Antti-Juhani Kaijanaho

Ohjelmointikielten periaatteet Syksy Antti-Juhani Kaijanaho Ohjelmointikielten periaatteet Syksy 2004 Antti-Juhani Kaijanaho Copyright c 2002, 2004 Antti-Juhani Kaijanaho Tästä teoksesta saa valmistaa kappaleita ja sen saa saattaa yleisön saataviin, muuttamattomana

Lisätiedot

Ohjelmointikielten periaatteet Syksy Antti-Juhani Kaijanaho

Ohjelmointikielten periaatteet Syksy Antti-Juhani Kaijanaho Ohjelmointikielten periaatteet Syksy 2004 Antti-Juhani Kaijanaho Copyright c 2002, 2004 Antti-Juhani Kaijanaho Tästä teoksesta saa valmistaa kappaleita ja sen saa saattaa yleisön saataviin, muuttamattomana

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

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

TIES542 kevät 2009 Aliohjelmien formalisointia lambda-kieli

TIES542 kevät 2009 Aliohjelmien formalisointia lambda-kieli TIES542 kevät 2009 Aliohjelmien formalisointia lambda-kieli Antti-Juhani Kaijanaho 3. helmikuuta 2009 Lambda-kielen taustalla on 1900-luvun alkuvuosikymmenien matematiikan perusteiden tutkimus ja siihen

Lisätiedot

Staattinen metaohjelmointi

Staattinen metaohjelmointi Staattinen metaohjelmointi Karri Kulmala karriku@iki.fi Markus Silván mape@st.jyu.fi Juho Yli-Honkola juylihon@cc.jyu.fi 1 Johdanto Sanakirjassa sana metakieli (metalanguage) määritellään seuraavasti[]:

Lisätiedot

lausekkeiden tapauksessa. Jotkin ohjelmointikielet on määritelty sellaisiksi,

lausekkeiden tapauksessa. Jotkin ohjelmointikielet on määritelty sellaisiksi, 3.5. TYYPIT 59 indeksit voidaan siirtää kielitasolta oliotasolle siirryttäessä alkamaan nollasta. Vain mikäli indeksin alin arvo oliotasolla ei ole tiedossa ennen suorituksen alkua, on tarpeen lisätä taulukko-olioon

Lisätiedot

kontrollivuon analyysejä optimointiensa tueksi ja myös tiettyjen merkitysopillisten

kontrollivuon analyysejä optimointiensa tueksi ja myös tiettyjen merkitysopillisten Luku 4 Kontrolli Tässä viimeisessä luvussa paneudutaan ohjelman kontrollin hallintaan. Keskeisin asia on aliohjelmakäsite, joka on teoreettisesti niin vahva, että valtaosa muista aiheeseen liittyvistä

Lisätiedot

Aliohjelmat. 1 Kutsusekvenssit. Antti-Juhani Kaijanaho 5. helmikuuta 2007

Aliohjelmat. 1 Kutsusekvenssit. Antti-Juhani Kaijanaho 5. helmikuuta 2007 Aliohjelmat Antti-Juhani Kaijanaho 5. helmikuuta 2007 1 Kutsusekvenssit Aliohjelmaan kontrolli siirtyy sen kutsun (engl. call) kautta. Kun aliohjelman suoritus päättyy, kontrolli siirtyy takaisin sinne,

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

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

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan CC1991:n ja CC2001:n vertailu Tutkintovaatimukset (degree requirements) Kahden ensimmäisen vuoden opinnot Ohjelmistotekniikan

Lisätiedot

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013 ja ja TIEA241 Automaatit ja kieliopit, kesä 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. kesäkuuta 2013 Sisällys ja ja on yksi vanhimmista tavoista yrittää mallittaa mekaanista laskentaa. Kurt

Lisätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit (Unrestricted Grammars) Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli

Lisätiedot

Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 14. maaliskuuta 2011 TIETOTEKNIIKAN LAITOS. Aloitus.

Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 14. maaliskuuta 2011 TIETOTEKNIIKAN LAITOS. Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 14. maaliskuuta 2011 Sisällys Sisällys Kurssin käytännöt Kurssin sivuilla http://users.jyu.fi/~antkaij/opetus/auki/2011/

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

Arkkitehtuurinen reflektio

Arkkitehtuurinen reflektio Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Luku 15. Parametripolymorfismi Kumitus

Luku 15. Parametripolymorfismi Kumitus Luku 15 Parametripolymorfismi Lähes kaikessa ohjelmoinnissa tarvitaan säilöjä (engl. containers) ja niitä käsitteleviä operaatioita. Aiemmissa monisteissa esiteltiin NumList, joka oli numeroita sisältävä

Lisätiedot

TIES542 kevät 2009 Tyyppiteorian alkeet

TIES542 kevät 2009 Tyyppiteorian alkeet TIES542 kevät 2009 Tyyppiteorian alkeet Antti-Juhani Kaijanaho 9. helmikuuta 2009 [Staattinen t]yyppijärjestelmä on ratkeava, kieliopillinen menetelmä, jota käytetään todistamaan tiettyjen käytösten puuttuminen

Lisätiedot

Alityypitys. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

Alityypitys. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos Alityypitys TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 5. maaliskuuta 2007 Muistatko tietueet? {I 1 = E 1,..., I n = E n } : {I

Lisätiedot

T Ohjelmistotekniikan seminaari

T Ohjelmistotekniikan seminaari T-106.5800 Ohjelmistotekniikan seminaari Scala-lukupiiri, kevät 2013 Teemu Sirkiä teemu.sirkia@aalto.fi 31.1.2013 Kenelle tämä lukupiiri on suunnattu? Scalasta kiinnostuneille Erityisesti heille, joita

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

OPPIMINEN ja SEN TUKEMINEN Supporting learning for understanding

OPPIMINEN ja SEN TUKEMINEN Supporting learning for understanding OPPIMINEN ja SEN TUKEMINEN Supporting learning for understanding Vetäjät: Jonna Malmberg jonna.malmberg@oulu.fi Tutkimusryhmä: Oppimisen ja Koulutusteknologian Tutkimusyksikkö (LET) LET tutkii (1) Conceptual

Lisätiedot

Johdanto. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

Johdanto. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos. TIE303 Formaalit menetelmät, kevät 2005 Johdanto Antti-Juhani Kaijanaho antkaij@mit.jyu.fi Jyväskylän yliopisto Tietotekniikan laitos TIE303 Formaalit mentetelmät, 2005-01-17 p. 1/17 TIE303 Formaalit menetelmät

Lisätiedot

Page 1 of 9. Ryhmä/group: L = luento, lecture H = harjoitus, exercises A, ATK = atk-harjoitukset, computer exercises

Page 1 of 9. Ryhmä/group: L = luento, lecture H = harjoitus, exercises A, ATK = atk-harjoitukset, computer exercises Tietotekniikan tarjoama opetus syksyllä 2016 23.5.2016 CS course schedule in autumn 2016 Sari Salmisuo I periodi / period I 12.9. 21.10.2016 viikot/weeks 37-42 II periodi / period II 31.10. 9.12.2016 viikot/weeks

Lisätiedot

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms. Kokeellinen algoritmiikka (3 ov) syventäviä opintoja edeltävät opinnot: ainakin Tietorakenteet hyödyllisiä opintoja: ASA, Algoritmiohjelmointi suoritus harjoitustyöllä (ei tenttiä) Kirjallisuutta: Johnson,

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

TIES542 kevät 2009 Kontrollivuon ohjaus

TIES542 kevät 2009 Kontrollivuon ohjaus TIES542 kevät 2009 Kontrollivuon ohjaus Antti-Juhani Kaijanaho 20. tammikuuta 2009 Sisältö 1 Testit 2 2 Käskykielten kontrollinohjaus 3 2.1 Valintalauseet 4 2.2 Toistolauseet eli silmukat 5 2.3 Vahtikomennot

Lisätiedot

Palvelujen dynaaminen valvonta

Palvelujen dynaaminen valvonta Palvelujen dynaaminen valvonta Esa Hämäläinen Palveluperustaisten ohjelmistojen suunnittelu ja kehittäminen seminaari Tuusula 18.9.2006 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Tiivistelmä Yritysten

Lisätiedot

järjestys, jossa ohjelman suoritus etenee ohjelmatekstissä jollakin tietyllä suorituskerralla (dynaaminen kontrollivuo)

järjestys, jossa ohjelman suoritus etenee ohjelmatekstissä jollakin tietyllä suorituskerralla (dynaaminen kontrollivuo) Luku 5 Kontrollivuon ohjaus Useimmat nykykielet ovat luonteeltaan peräkkäistäviä (sequential): ohjelmatekstissä mainitut tehtävät tehdään yksi kerrallaan toinen toisensa jälkeen. Jotkin kielet tukevat

Lisätiedot

Staattinen tyyppijärjestelmä

Staattinen tyyppijärjestelmä Luku 12 Staattinen tyyppijärjestelmä [Staattinen t]yyppijärjestelmä on ratkeava, kieliopillinen menetelmä, jota käytetään todistamaan tiettyjen käytösten puuttuminen ohjelmasta luokittelemalla ilmaisuja

Lisätiedot

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit Kurssilla: Johdatus käyttäjäkeskeiseen tuotekehitykseen 23.1.2008 Johanna Viitanen johanna.viitanen@soberit.hut.fi Luennon aiheet Tuotekehityksen

Lisätiedot

7. Product-line architectures

7. Product-line architectures 7. Product-line architectures 7.1 Introduction 7.2 Product-line basics 7.3 Layered style for product-lines 7.4 Variability management 7.5 Benefits and problems with product-lines 1 Short history of software

Lisätiedot

Luottamuksen ja maineen rooli palveluperustaisten yhteisöjen muodostamisessa

Luottamuksen ja maineen rooli palveluperustaisten yhteisöjen muodostamisessa Luottamuksen ja maineen rooli palveluperustaisten yhteisöjen muodostamisessa Eija Henritius Helsinki 1.2.2009 Seminaari (työsuunnitelma/tiivistelmä) HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

Yrityksen informaatio- ja toimintoprosessien optimointi

Yrityksen informaatio- ja toimintoprosessien optimointi Yrityksen informaatio- ja toimintoprosessien optimointi V-S Teknologiateollisuus ry vaalikokous 10.11.2008 Thomas Westerholm Åbo Akademi PBI Research Institute Teknologisen kehityksen taustalla Copyright

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

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

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9. Käytettävyyslaatumallin rakentaminen web-sivustolle Tapaus kirjoittajan ABC-kortti Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.2005 Kirjoittajan ABC-kortti

Lisätiedot

Geneeriset tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

Geneeriset tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos Geneeriset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 6. maaliskuuta 2007 Kysymys Mitä yhteistä on seuraavilla funktioilla?

Lisätiedot

Digitalisaation rakenteellisista jännitteistä. Tero Vartiainen tieto- ja tietoliikennetekniikan yksikkö

Digitalisaation rakenteellisista jännitteistä. Tero Vartiainen tieto- ja tietoliikennetekniikan yksikkö Digitalisaation rakenteellisista jännitteistä Tero Vartiainen tieto- ja tietoliikennetekniikan yksikkö Luennon sisältö Digitalisaation perusta Tietojärjestelmätiede ja digitalisaatio Rakenteellinen jännite

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

Samanaikaisuuden hallinta

Samanaikaisuuden hallinta Samanaikaisuuden hallinta TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. maaliskuuta 2007 Samanaikaisuus engl. concurrency useampaa

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

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1. Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001

Lisätiedot

Kielitieteellisten aineistojen käsittely

Kielitieteellisten aineistojen käsittely Kielitieteellisten aineistojen käsittely 1 Johdanto...1 2 Aineistojen kommentointi, metadatan tyypit...1 3 Aineistojen käsittely...2 3.1 Rakenteisten kieliaineistojen kyselykielet...2 3.2 Tiedonlouhinta

Lisätiedot

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science Tietojenkäsittelytieteiden koulutusohjelma Tietojenkäsittelytieteet Laskennallinen data-analyysi Ohjelmistotekniikka, käyttöjärjestelmät, ihminen-kone -vuorovaikutus Teoreettinen tietojenkäsittelytiede

Lisätiedot

14.1 Rekursio tyypitetyssä lambda-kielessä

14.1 Rekursio tyypitetyssä lambda-kielessä Luku 14 Rekursiiviset tyypit Edellisessä luvussa esitetyt tietue- ja varianttityypit eivät yksinään riitä kovin mielenkiintoisten tietorakenteiden toteuttamiseen. Useimmissa ohjelmissa tarvitaan erilaisia

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Luku 7. Aliohjelmat. 7.1 Kutsusekvenssit. Aliohjelma (subroutine) on useimpien kielten tärkein kontrollivuon ohjausja abstrahointikeino.

Luku 7. Aliohjelmat. 7.1 Kutsusekvenssit. Aliohjelma (subroutine) on useimpien kielten tärkein kontrollivuon ohjausja abstrahointikeino. Luku 7 Aliohjelmat Aliohjelma (subroutine) on useimpien kielten tärkein kontrollivuon ohjausja abstrahointikeino. 7.1 Kutsusekvenssit Aliohjelmaan kontrolli siirtyy sen kutsun (call) kautta. Kun aliohjelman

Lisätiedot

Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19

Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19 Ohjelmointikieli TIE-20306 Principles of Programming Languages Syksy 2017 Ryhmä 19 Juho Kärnä Ville Mäntysaari 1. Johdanto D on yleiskäyttöinen, strukturoitu, staattisesti tyypitetty, käännettävä ohjelmointikieli

Lisätiedot

Rekursiiviset tyypit

Rekursiiviset tyypit Rekursiiviset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. helmikuuta 2007 Hiloista Kiintopisteet (Ko)rekursio Rekursiiviset

Lisätiedot

Tyyppipäättely. Keijo Mattila Tiivistelmä

Tyyppipäättely. Keijo Mattila Tiivistelmä Tyyppipäättely Keijo Mattila kemattil@st.jyu.fi Anssi Pennanen anspenn@st.jyu.fi 1 Johdanto Luotettavuus ja tehokkuus ovat hyvän ohjelman ominaisuuksia. Pyrkimys näiden kahden ominaisuuden saavuttamiseen

Lisätiedot

Armstrong (2006) hahmottelee puolimuodollisessa kirjallisuuskatsauksessaan oliopohjaisen kehityksen keskeiset termit seuraavasti (suomennos minun):

Armstrong (2006) hahmottelee puolimuodollisessa kirjallisuuskatsauksessaan oliopohjaisen kehityksen keskeiset termit seuraavasti (suomennos minun): Luku 9 Oliokielten erityispiirteitä Oliosuuntautuneisuus (engl. object orientation) ja olio-ohjelmointi (engl. object oriented programming) ovat laajassa käytössä olevia sanoja, joilla on tietty merkitys,

Lisätiedot

Bachelor level exams by date in Otaniemi

Bachelor level exams by date in Otaniemi Bachelor level exams by date in Otaniemi 2015-2016 (VT1 means that the place of the exam will be announced later) YOU FIND INFORMATION ABOUT THE PLACE OF THE EXAM IN OTAKAARI 1 U-WING LOBBY (M DOOR) Day

Lisätiedot

Bachelor level exams by subject in Otaniemi

Bachelor level exams by subject in Otaniemi Bachelor level exams by subject in Otaniemi 2015-2016 (VT1 means that the place of the exam will be announced later) YOU FIND INFORMATION ABOUT THE PLACE OF THE EXAM IN OTAKAARI 1 U-WING LOBBY (M DOOR)

Lisätiedot

Simulation model to compare opportunistic maintenance policies

Simulation model to compare opportunistic maintenance policies Simulation model to compare opportunistic maintenance policies Noora Torpo 31.08.18 Ohjaaja/Valvoja: Antti Punkka Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta osin

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 15. joulukuuta 2015 Sisällys Loppukurssin aikataulu tiistai 15.12.2015 viimeiset demot keskiviikko 16.12.2015 viimeiset

Lisätiedot

Yksilöllistä, puhuroi, suorita - Mitä käyttöliittymien termien taakse kätkeytyy?

Yksilöllistä, puhuroi, suorita - Mitä käyttöliittymien termien taakse kätkeytyy? Yksilöllistä, puhuroi, suorita - Mitä käyttöliittymien termien taakse kätkeytyy? Niina Nissilä & Suvi Isohella Minä ja tiede Seinäjoki 18.3.2014 Vaasa 20.3.2014 Esityksen rakenne Lähtökohta Järjestelmä,

Lisätiedot

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

Tietokonearkkitehtuuri 2 TKT-3201 (5 op) Tietokonearkkitehtuuri 2 (5 op) syksyllä 2012 periodit I & II (viikot 35-41 & 43-49) luennot tiistaisin klo 14-16 (periodi I: sali S4, periodi II: sali TB109) Kurssin tavoite Käydään läpi tietokoneen toimintaa

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

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

Tilanne sekä MS-A0003/4* Matriisilaskenta 5 op

Tilanne sekä MS-A0003/4* Matriisilaskenta 5 op MATEMATIIKKA Mat-1.1210 Matematiikan peruskurssi S1 ei järjestetä enää MS-A0103/4* Differentiaali- ja integraalilaskenta I 5 op sekä MS-A0003/4* Matriisilaskenta 5 op Mat-1.1110 Matematiikan peruskurssi

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

Internet ja tietoverkot

Internet ja tietoverkot 811338A 0. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2014 / 2015 Luennoija 811338A 5 op 9. 1. 6. 3. 2015 nimi: Juha Kortelainen e-mail: juha.kortelainen@oulu.fi vastaanotto: torstai klo 10 12,

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

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015 TIEA241 Automaatit ja, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Formaalisti Määritelmä Nelikko G = (V, Σ, P, S) on kontekstiton kielioppi (engl. context-free

Lisätiedot

KÄYTTÄJÄKOKEMUS & KÄYTTÖLIITTYMÄSUUNNITTELU. CSE- C3800, Aalto 16.9.2015, Eeva Raita

KÄYTTÄJÄKOKEMUS & KÄYTTÖLIITTYMÄSUUNNITTELU. CSE- C3800, Aalto 16.9.2015, Eeva Raita KÄYTTÄJÄKOKEMUS & KÄYTTÖLIITTYMÄSUUNNITTELU CSE- C3800, Aalto 16.9.2015, Eeva Raita TÄNÄÄN 1. KÄYTTÄJÄKOKEMUS EI OLE 2. KÄYTTÄJÄKOKEMUS ON 3. RYHMÄTEHTÄVÄ 4. HUOMIOINTI SUUNNITTELUSSA CSE- C3800, 16.9.2015,

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

semantiikasta TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho 5. lokakuuta 2009 TIETOTEKNIIKAN LAITOS Ohjelmointikielten staattisesta

semantiikasta TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho 5. lokakuuta 2009 TIETOTEKNIIKAN LAITOS Ohjelmointikielten staattisesta TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. lokakuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe B tiistai 6.10. klo 10 selaaja ja jäsentäjä toimivat Vaihe

Lisätiedot

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri Enterprise Architecture TJTSE25 2009 Yrityksen kokonaisarkkitehtuuri Jukka (Jups) Heikkilä Professor, IS (ebusiness) Faculty of Information Technology University of Jyväskylä e-mail: jups@cc.jyu.fi tel:

Lisätiedot

VALTIO-OPPI 2015-2017

VALTIO-OPPI 2015-2017 VALTIO-OPPI 2015-2017 1 HUOM! Tutkintovaatimukset 2015-2017 otetaan käyttöön 1.9.2015 alkaen. Kesätentissä 8.8.2015 ovat vielä voimassa 2012-2015 vaatimukset. Vanhojen vaatimusten mukaisia esseitä voi

Lisätiedot

Rinnakkaisohjelmistot. Liisa Marttinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Kevät 2004

Rinnakkaisohjelmistot. Liisa Marttinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Kevät 2004 581332-8 Liisa Marttinen Tietojenkäsittelytieteen laitos Helsingin yliopisto Kevät 2004 Asema opetuksessa cl-oppimäärän pakollinen kurssi Esitiedot: Tietokoneen toiminta (2 ov) Käyttöjärjestelmät I (2

Lisätiedot

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

SFS/SR315 Tekoäly Tekoälyn standardisointi

SFS/SR315 Tekoäly Tekoälyn standardisointi SFS/SR315 Tekoäly Tekoälyn standardisointi Meri Seistola Toiminnanjohtaja, Mediakasvatuskeskus Metka ry SR 315 Tekoäly - Puheenjohtaja: Jarkko Vesa 1 SC42 Artificial Intelligence ISO/IEC JTC1 SC42 Artificial

Lisätiedot

Julkaisufoorumin kuulumiset

Julkaisufoorumin kuulumiset Julkaisufoorumin kuulumiset Suunnittelija Janne Pölönen, TSV Julkaisutiedonkeruuseminaari Saimaan ammattikorkeakoulu 29.8.2016 Julkaisufoorumin kuulumiset Julkaisufoorumin ohjausryhmän kokous 8.6.2016

Lisätiedot

House-käyttöjärjestelmä

House-käyttöjärjestelmä House-käyttöjärjestelmä Tuomo Sipola tusesipo@jyu.fi 8. huhtikuuta 2008 Tiivistelmä House on Haskell-kielellä kirjoitettu käyttöjärjestelmä. Haskellilla on pystytty kuvaamaan käyttöjärjestelmän keskeinen

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

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus FORMAALI SYSTEEMI (in Nutshell): Formaali kieli: aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus esim. SSM:n tai EBNF:n avulla Semantiikka:

Lisätiedot

Johdanto II. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

Johdanto II. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos. TIE303 Formaalit menetelmät, kevät 2005 Johdanto II Antti-Juhani Kaijanaho antkaij@mit.jyu.fi Jyväskylän yliopisto Tietotekniikan laitos TIE303 Formaalit mentetelmät, 2005-01-20 p. 1/21 Luento2Luentomoniste

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

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

Oliot ja tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

Oliot ja tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos Oliot ja tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 19. maaliskuuta 2007 Olion tyyppi? attribuutti on oikeastaan metodi,

Lisätiedot

Epätäydellisen preferenssi-informaation huomioon ottavien päätöksenteon tukimenetelmien vertailu (aihe-esittely)

Epätäydellisen preferenssi-informaation huomioon ottavien päätöksenteon tukimenetelmien vertailu (aihe-esittely) Epätäydellisen preferenssi-informaation huomioon ottavien päätöksenteon tukimenetelmien vertailu (aihe-esittely) Vilma Virasjoki 23.01.2012 Ohjaaja: Jouni Pousi Valvoja: Raimo P. Hämäläinen Työn saa tallentaa

Lisätiedot

Aalto University School of Engineering Ongelmaperusteisen oppimisen innovatiivinen soveltaminen yliopisto-opetuksessa

Aalto University School of Engineering Ongelmaperusteisen oppimisen innovatiivinen soveltaminen yliopisto-opetuksessa Aalto University School of Engineering Ongelmaperusteisen oppimisen innovatiivinen soveltaminen yliopisto-opetuksessa Cleantech gaalan iltapäiväseminaari 20.11.2013 Helena Mälkki & Petri Peltonen Aalto-yliopisto,

Lisätiedot

Edward Sapir ja Benjamin Whorf esittivät viime vuosisadan alkupuolella kielitieteellisen

Edward Sapir ja Benjamin Whorf esittivät viime vuosisadan alkupuolella kielitieteellisen Luku 1 Johdanto Edward Sapir ja Benjamin Whorf esittivät viime vuosisadan alkupuolella kielitieteellisen hypoteesin, joka tunnetaan nykyisin nimellä Sapirin Whorfin hypoteesi. Sen heikompi muoto, johon

Lisätiedot

RANS0002 P2. Phonetics and Pronunciation (Fonetiikka ja ääntäminen), O, 2 ECTS. RANS0010 P3. Translation Exercise (Käännösharjoitukset) s, O, 3 ECTS

RANS0002 P2. Phonetics and Pronunciation (Fonetiikka ja ääntäminen), O, 2 ECTS. RANS0010 P3. Translation Exercise (Käännösharjoitukset) s, O, 3 ECTS FRENCH Curriculum of the academic year 2013-2014 BASIC STUDIES (First year, French Studies and French Translation and Interpreting) 25 ECTS, O = Obligatory RANS0001 P1. French Grammar (Kielioppi), O, 4

Lisätiedot

Ontologiakirjasto ONKI-Paikka

Ontologiakirjasto ONKI-Paikka Ontologiakirjasto ONKI-Paikka Tomi Kauppinen, Robin Lindroos, Riikka Henriksson, Eero Hyvönen Semantic Computing Research Group (SeCo) and University of Helsinki and Helsinki University of Technology (TKK)

Lisätiedot