TIE542 Ohjelmointikielten periaatteet, syksy Antti-Juhani Kaijanaho. 6. syyskuuta 2010
|
|
- Riitta Salo
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 TIE542 periaatteet, syksy 2010 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. syyskuuta 2010
2 Sisällys Esia
3 Oppimistavoitteet arvolauseelle 1 Kurssin suorittanut opiskelija kykenee vertailemaan ohjelmointikieliä toisiinsa; selostamaan käsky-, funktio-, olio- ja logiikkakielten pääperiaatteet; toistamaan ohjelmointikielten n pääkohdat; ja lukemaan keskeisiä ohjelmointikielten kuvaamisessa käytössä olevia formalismeja.
4 Oppimistavoitteet arvolauseille 4 5 Kurssin erinomaisin arvolausein suorittanut opiskelija kykenee lisäksi arvioimaan ohjelmointikieliä tieteellisesti ja kriittisesti; analysoimaan käsky-, funktio-, olio- tai logiikkakielen periaatteita; ja käyttämään jotakin formalismia ohjelmointikielen kuvaamiseen.
5 Lähiopetus luennot (suomeksi) (18 luentokertaa) ma klo 12 ja ti klo 10 saatan joutua perumaan 1 2 luentoa kurssin aikana käräjäoikeuden lautamiehen tehtävän vuoksi aikataulu sisältää varauksen 2 korvaavalle luentokerralle demot klo 12 (9 kertaa) tarkista sali aina Korpista! lähiopetus 36 h + 18 h = 54 h (eli 41 %)
6 Kotitehtävät luentojen kertaus ja demojen teko 54 h (eli 6 h/vko) osaamisnäytön (tentti tai essee) valmistelu 25 h kotitehtävät yhteensä 79 h (59 %)
7 Suoritustavat essee deadline n. 10 sivua rajoitetusti vapaasta aiheesta tarkoituksena harjoitella kurssin ensimmäistä oppimistavoitetta samalla osoitetaan kurssin tietosisällön hallinta tarkemmat ohjeet kurssin nettisivuilla tentti
8 Sisällys Esia Esia
9 Esillisia ohjelmointivälineitä Välineitä, joilla ohjelmoitavia koneita ohjelmoitiin ennen yleiskäyttöisten tietokoneiden käyttöönottoa: Jacquardin kangaspuiden ohjelmakortit (1801) Babbagen analyyttisen koneen ohjelmakortit (1837) Ada Augustan, Lovelacen kreivittären, huomautukset (1942 3) automaattipianoiden rullat (1883) Esia Formaaleja kieliä, joilla esitettiin algoritmeja ennen yleiskäyttöisten tietokoneiden käyttöönottoa: lambda-laskento (1936) Turingin kone (1936)
10 Plankalkül Konrad Zusen Saksassa kehittämä kieli ei saanut juurikaan huomiota ennen 1970-lukua kirjoitustapa on erikoinen muuten yllättävän moderni kieli Tarkemmin: F. L. Bauer & H. Wössner: The Plankalkül of Konrad Zuse: A Forerunner of Today s Programming Languages. Communications of the ACM, 15 (7), Esia
11 Konekielet 1940-luvulta alkaen alun perin: kieli, jota tietokoneen laitteisto käyttää toimintaohjeiden saamiseksi koostuu tavallisesti tavujonoista (käskyistä) kukin tavujono koodaa yhden primitiivisen käskyn, kuten yhteenlaskun tai hypyn ohjelmointi on erittäin työlästä ja virhealtista Esia
12 Assembly eli symbolinen konekieli 1940-luvulta alkaen (käsin käännettynä), 1951 (koneellisesti käännettynä) konekielen symbolinen esitystapa kukin konekielen käsky esitetään yhtenä rivinä hyppyjen kohteille ja muistipaikoille voidaan antaa nimet käännettävä joko käsin tai automaattisesti konekielelle joka koneella omansa Esia
13 Makroassembly alkaen 1955 assembly, jossa ohjelmoija voi määritellä makroja nimettyjä, parametrisoituja käskyjonoja makron nimi käskyn paikalla korvataan ko. käskyjonon kopiolla Esia
14 Sisällys Esia Esia
15 Fortran C PROGRAM FOR FINDING THE LARGEST VALUE C 1 ATTAINED BY A SET OF NUMBERS DIMENSION A(999) FREQUENCY 30(2,1,10), 5(100) READ 1, N, (A(I), I = 1,N) 1 FORMAT (I3/(12F6.2)) BIGA = A(1) 5 DO 20 I= 2,N 30 IF (BIGA-A(I)) 10,20,20 10 BIGA = A(I) 20 CONTINUE PRINT 2, N, BIGA 2 FORMAT (22H1THE LARGEST OF THESE I3, 1 12H NUMBERS IS F7.2) STOP (columns 1 5) statement number (C for comment) 2. (column 6) continuation 3. (columns 7 72) Fortran statement 4. (columns 73 80) identification Esia Lähde: Fortran automatic coding system for the IBM 704 programmer s reference manual, 1956.
16 Fortran kehitetty julkaistu 1956, 1958 (FORTRAN II) osoitti että ohjelmallisesti käännettävät ohjelmointikielet ovat käyttökelpoisia kontribuutioita: symboliset muuttujat aritmeettiset lausekkeet taulukot, joiden koko on tiedossa käännösaikana silmukat ja ehtorakenteet erilliset (ei-rekursiiviset) aliohjelmat edelleen käytössä merkittävästi muuttuneena Esia
17 FLOW-MATIC 0) INPUT INVENTORY FILE=A PRICE FILE=B, OUTPUT PRICED-INV FILE=C UNPRICED-INV FILE=D, HSP D. 1) COMPARE PRODUCT-NO(A) WITH PRODUCT-NO(B) IF GREATER GO TO OPERATION 10; IF EQUAL GO TO OPERATION 5; OTHERWISE GO TO OPERATION 2. 2) TRANSFER A TO D. 3) WRITE ITEM D. 4) JUMP TO OPERATION 8. Esia 5) TRANSFER A TO C. 6) MOVE UNIT-PRICE(B) TO UNIT-PRICE(C). 7) WRITE ITEM C. 8) READ ITEM A; IF END OF DATA GO TO OPERATION 14. 9) JUMP TO OPERATION 1. 10) READ ITEM B; IF END OF DATA GO TO OPERATION ) JUMP TO OPERATION 1. 12) SET OPERATION 9 TO GO TO OPERATION 2. 13) JUMP TO OPERATION 2. 14) TEST PRODUCT-NO(B) AGAINST ZZZZZZZZZZZZ; IF EQUAL GO TO OPERATION 16; OTHERWISE GO TO OPERATION ) REWIND B. 16) CLOSE-OUT FILES C, D. 17) STOP. (END)
18 FLOW-MATIC kehitystyö teollisessa käytössä viimeistään vuonna 1958 ensimmäinen kaupalliseen laskentaan käytetty kieli ensimmäinen kieli, jossa mahdollista kuvata tietueiden rakenne erillään ohjelman toiminnallisesta kuvauksesta ei nykyään käytössä perillinen COBOL (1960 ) Esia
19 Algol procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k); value n, m; array a; integer n, m, i, k; real y; comment The absolute greatest element of the matrix a, of size n by m is transferred to y, and the subscripts of this element to i and k; begin integer p, q; y := 0; i := k := 1; for p:=1 step 1 until n do for q:=1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q end end Absmax Esia Lähde: Naur (ed.), Backus, et al.: Revised report on the algorithmic language Algol 60. CACM, 6 (1), 1963
20 Algol kehitetty julkaistu 1958 (Algol 58), 1960 (Algol 60), 1963 (Algol 60 revised) myös Algol 68, mutta se kaatui omaan monimutkaisuuteensa tarkoituksena luoda maailmanlaajuisesti käytössä oleva kieli algoritmien kuvaamiseen kontribuutioita: sisäkkäiset lohkot rekursiiviset aliohjelmat arvo- ja nimivälitys eksplisiittiset tyyppimäärittelyt taulukot, joiden koko on tiedossa vasta ajon aikana ei nykyään käytössä perillisiä: C, Pascal, C++, C#, Java,... Esia
21 LISP apply [f;args] = eval [cons [f; appq [args]]; NIL] appq [m] = [ null [m] T ] NIL; cons [list [QUOTE; car[m]]; appq[cdr [m]]] Esia eval [e;a] = [ atom [e] assoc [e;a] eq [car [e]; QUOTE] cadr [e]; eq [car [e]; ATOM] atom [eval [cadr [e]; a]]; eq [car [e]; EQ] [eval [cadr [e]; a] = eval [caddr [e]; a]] eq [car [e]; COND] evcon [cdr [e]; a] eq [car [e]; CAR] car [eval [cadr [e]; a]] eq [car [e]; CDR] cdr [eval [cadr [e]; a]] eq [car [e]; CONS] cons [eval [cadr [e]; a]] atom [car [e]] eval [cons [assoc [car [e]; a]; evlis [cdr [e],a ]]; a]; eq [caar [e]; LABEL] eval [cons [caddar [e]; cdr [e]]; cons [list [cadar [e]; car [e]; a]]]; eq [caar [e]; LAMBDA] eval [caddar [e]; append [pair [cadar [e]; evlis [cdr [e]; a]; a]]] ] evcon [e;a] = [ eval [caar [e]; a] eval [cadar [e]; a] T evcon [cdr [e]; a] ] evlis [m;a] = [ null[m] NIL; T cons [eval [car [m]; a]; evlis [cdr [m]; a]]] ] John McCarthy: Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. Communications of the ACM 3 (4), 1960.
22 LISP kehitetty julkistus 1960 John McCarthyn tekoälytutkimusta varten kehittämä kieli kontribuutioita: rekursiiviset aliohjelmat ohjelma on dataa eval-funktio muistinsiivous (roskienkeruu) edelleen käytössä merkittävästi muuttuneena perillisiä: Scheme, ML, Haskell, F# Esia
23 SIMULA class point (x,y); real x, y; begin ref (point) procedure plus (P); ref (point) P; plus :- new point (x+p.x, y.p.y); end point; Esia point class polar; begin real r, v; ref (polar) procedure plus (P); ref (point) P; plus :- new polar (x+p.x, y+p.y); r := sqrt (x 2+y 2); v := arctg (x,y); end polar; Ole-Johan Dahl & Bjørn Myhrhaug & Kristen Nygaard: Common Base Language. Authorized by SIMULA Standards Group as the Common Base from May 19th Norwegian Computing Center S-22, Page 23.
24 SIMULA julkaisut 1964 (SIMULA I) ja 1967 (SIMULA 67) Kristen Nygaard ja Ole-Johan Dahl kehittivät Simulan diskreettien simulaatioiden ohjelmointia varten pohjakielenä Algol 60 kontribuutioita (SIMULA 67): luokat perintä virtuaalimetodit perillisiä kaikki oliokielet, mutta erityisesti C++ Esia
25 In the spring of 1967 a new employee at the NCC in a very shocked voice told the switchboard operator: "Two men are fighting violently in front of the blackboard in the upstairs corridor. What shall we do?" The operator came out of her office, listened for a few seconds and then said: "Relax, it s only Dahl and Nygaard discussing SIMULA". The story is true. Esia Kristen Nygaard & Ole-Johan Dahl: The development of the SIMULA languages. In History of Progamming Languages, Academic Press, 1981, p. 476.
26 PROLOG $ cat foo.pl suoralinja(mattilanniemi,keskusta,5). suoralinja(keltinmaki,keskusta,27). suoralinja(kortepohja,keskusta,18). suoralinja(keskusta,x,y) :- suoralinja(x,keskusta,y). Esia paasee(x,y,[z]) :- suoralinja(x,y,z). paasee(x,y,[z1 Z2]) :- suoralinja(x,z,z1), paasee(z,y,z2). $ gprolog --entry-goal [foo] GNU Prolog By Daniel Diaz Copyright (C) Daniel Diaz compiling foo.pl for byte code... foo.pl compiled, 8 lines read bytes written, 29 ms?- paasee(kortepohja,mattilanniemi,x). X = [18,5]? yes?-
27 PROLOG kehitys käytössä 1973 alkaen kieli luonnollisen kielen käsittelyyn taustalla formaali logiikka ja Robinsonin resoluutioperiaate (1965) lähtökohtana ei ollut mikään olemassa ollut ohjelmointikieli kontribuutio: ohjelmointikieli voi olla radikaalisti erilainen edelleen käytössä Esia
28 Smalltalk linecount "Answer the number of lines represented by the receiver, where every cr adds one line. 5/10/96 sw" Esia cr count cr := Character cr. count := 1 min: self size.. 1 to: self size do: [:i (self at: i) = cr iftrue: [count := count + 1]]. ^ count Squeak v. 4.0, String-luokan metodi linecount
29 Smalltalk kehitys julkaisu 1980 keskeisimmät edeltäjät LISP ja SIMULA ensimmäinen paradimaattinen oliokieli (yhtenä) tarkoituksena kieli, jolla lapsetkin voivat ohjelmoida edelleen käytössä Esia
30 Sisällys Esia Esia
31 C, C++, Java, C# edeltäjiä: CPL (1963), BCPL (1966), B (1969) muilla kuin C:llä lisäksi SIMULA kehitys alkanut: C 1971, C , Java 1991, C# 199x julkaisut: C 1978, C , Java 1996, C# 2000 Esia
32 BASIC kehitettiin 1964 suunniteltu opiskelijoiden (muut kuin luonnontieteet) käyttöön pohjana FORTRAN ja ALGOL, mutta yksinkertaistaen merkittävästi muuttunut nykyversioissa (Visual Basic ym.) Esia
33 Perl kehitys alkoi julkaisu 1987 alun perin tekstuaalisessa muodossa esitetyn datan raportointiin taustalla C, awk, sed Esia 1 Andrew Leonard: The Joy of Perl. Salon (technology feature)
34 Python kehitys alkoi julkaistu 1991 alkuaan Amoeba-käyttöjärjestelmän apuohjelmaohjelmointiin taustalla ABC ja sen kautta ALGOL 68 Esia 2 Guido van Rossum: Personal History - part 1, CWI. The History of Python
35 Ruby kehitys alkoi julkaisu 1995 tarkoituksena olla Pythonia ja Perliä parempi olioskriptikieli Esia 3 Bruce Stewart: An Interview with the Creator of Ruby. O Reilly Linux devcenter
36 PHP kehitys alkaa 1995 (PHP/FI), 1997 (PHP 3.0) julkaisu 1995 (PHP/FI), 1998 (PHP 3.0) alkujaan WWW-sivunrakennuskieli, joka kasvanut orgaanisesti Esia
37 O Caml, Haskell, F# taustalla LISP, ISWIM (1966), SASL (1972), ML (1973), FP (1977) innokkaat: O Caml (1996), F# (2002) taustalla lisäksi Standard ML eli SML (1990) laiska: Haskell ( ) taustalla lisäksi Orwell (1984), Miranda (1985) funktiokieliä Esia
38 Sisällys Esia Esia
39 Konrad Zuse ( ) saksalainen rakensi varhaisia tietokoneita: Z1 (1936), Z2 (1939), Z3 (1941), Z4 ( ) suunnitteli Plankalkül-kielen sotien jälkeen toimi tietokonealan yrittäjänä Esia
40 John Backus ( ) amerikkalainen johti IBM:n FORTRAN-projektia, oli FORTRANin pääsuunnittelija osallistui ALGOL-kehitystyöhön loi kielioppien BNF-notaation (Backus Naur Form) piti Turing-palkinnon vastaanottopuheenaan palopuheen perinteistä ohjelmointityyliä vastaan ja esitteli FP-kielen Esia
41 Grace Hopper ( ) FLOW-MATICin pääkehittäjä sanotaan luoneen sanan bug tietokonemerkityksen myöhemmin Yhdysvaltain ensimmäinen kenraalikuntaan ylennetty nainen (commodore / lippueamiraali) vastoin yleistä luuloa Hopper ei osallistunut COBOLin määrittelyyn Esia
42 Peter Naur (1928 ) tanskalainen osallistui ALGOLin kehitykseen oli ALGOL 60 -kielen alkuperäisen määrittelydokumentin toimittaja popularisoi Backusin luoman BNF-notaation Esia
43 John McCarthy (1927 ) Esia amerikkalainen popularisoi termin artificial intelligence loi LISP-kielen
44 Niklaus Wirth (1934 ) sveitsiläinen osallistui ALGOL 68:n kehitykseen ja jätti kielestä eriävän mielipiteen kehitti kielet Euler (1966) ALGOL W (1968) Pascal (1970) Modula (1977) Modula 2 (1979) Oberon (1986) Oberon 2 (1991) Esia
45 Ole-Johan Dahl ( ) Esia norjalainen kehitti SIMULAn yhdessä Kristen Nygaardin kanssa
46 Kristen Nygaard ( ) Esia norjalainen kehitti SIMULAn yhdsessä Ole-Johan Dahlin kanssa osallistui myös BETAn kehitykseen
47 Alan Kay (1940 ) amerikkalainen johti henkilökohtaisen tietokoneen tutkimusprojektia Xeroxin Paolo Alton tutkimuskeskuksessa (PARC) loi Smalltalk-kielen loi object orientation -termin Esia
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ätiedotJohdanto 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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Tulkki: proseduurit, abstrakti syntaksi, quote ja cond (mm. SICP 44.1.5 osin) Riku Saikkonen 15. 11. 2011 Sisältö 1 Argumentittomat proseduurit ja käyttöliittymä
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 3: SICP kohdat 2.22.3, 33.1 ja 3.33.3.2 Riku Saikkonen 8. 11. 2010 Sisältö 1 Lisää listoista 2 Symbolit ja sulkulausekkeet 3 Derivoijaesimerkki 4 Muuttujan
Lisätiedot815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 II Ohjelmointikielten kehityshistoriaa Sisältö 1. Ohjelmointikielten sukupolvet 2. Pääohjelmointikielten kehitys 815338A Ohjelmointikielten periaatteet,
LisätiedotOhjelmoinnin 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ätiedotScheme-kesäkurssi luento 3
Scheme-kesäkurssi luento 3 Riku Saikkonen 6. 7. 2009 Sisältö 1 Nelilaskin 2 Muuttujat 3 Ympäristöt 4 Scheme-tulkki 5 Kontinuaatiot 6 CPS Miksi SICP-kirjassa on Scheme-tulkkeja? tulkin näkeminen auttaa
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:
Lisätiedot1. 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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Paikalliset muuttujat, kirjan tulkki kokonaisuutena (mm. SICP 3.2, 4.1.24.1.6) Riku Saikkonen 22. 11. 2012 Sisältö 1 Ympäristöt: miten paikalliset
Lisätiedot1.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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: SICP kohdat 22.2.3 Riku Saikkonen 2. 11. 2010 Sisältö 1 Linkitetyt listat 2 Listaoperaatioita 3 Listarakenteet 4 Gambit-C:n Scheme-debuggeri Linkitetyt
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 9: Makrot ja dynaaminen sidonta Riku Saikkonen 7. 12. 2010 Sisältö 1 Makrot 2 Pieni esimerkki abstraktion tekemisestä 3 Dynaaminen sidonta Mikä on makro?
LisätiedotTIEA341 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ätiedotJohdatus ohjelmointiin
Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat
Lisätiedot1.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.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ätiedot815338A 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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, todistamisesta (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 7. 11. 2011 Sisältö 1 Muuttujan arvon muuttaminen: set! 2 SICP-oliot
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 12: Ohjelmamuunnokset, dynaaminen sidonta, Lisp-kielistä Riku Saikkonen 4. 12. 2012 Sisältö 1 Ohjelmia muokkaavat ohjelmat 2 Dynaaminen sidonta 3 Lisp-kielistä
LisätiedotTIEA255 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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Tulkin muokkaaminen, sisäiset määrittelyt, makrot (mm. SICP 3.2.4, 4-4.1.6) Riku Saikkonen 29. 11. 2012 Sisältö 1 Kirjan tulkin muokkaaminen 2 Yksityiskohta:
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Olioiden toteuttaminen, abstraktit luokat yms. Riku Saikkonen (merkityt ei-laajan kurssin kalvot: Otto Seppälä) 27. 1. 2011 Sisältö 1 Kertausta Scheme-tulkista
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 3: Funktionaalinen listankäsittely ja listankäsittelyoperaatiot (mm. SICP 22.2.3) Riku Saikkonen 31. 10. 2011 Sisältö 1 Linkitetyt listat 2 Listarakenteet
LisätiedotImperatiivisten 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ätiedotImperatiivisten 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ätiedotOhjelmoinnin 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ätiedotTIEA241 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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 7: Funktionaalista ohjelmointia (mm. SICP 3.5) Riku Saikkonen 13. 11. 2012 Sisältö 1 Laiskaa laskentaa: delay ja force 2 Funktionaalinen I/O 3 Funktionaalista
LisätiedotVarhaiset 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ätiedotJohdantoa 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ätiedotOhjelmointikielten 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ätiedot815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Olioiden toteuttaminen Riku Saikkonen 28. 11. 2011 Sisältö 1 Miten oliot ja metodikutsut toimivat? 2 Oliot Minkä luokan metodia kutsutaan? Python-esimerkki
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Tulkin muokkaus, makrot, ohjelmia muokkaavat ohjelmat (mm. SICP 3.2.4, 4-4.1.6) Riku Saikkonen 22. 11. 2011 Sisältö 1 Kirjan tulkin muokkaaminen 2
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 9: cond, paikalliset muuttujat, kirjan tulkki kokonaisuutena (mm. SICP 3.2, 4.1.24.1.6) Riku Saikkonen 21. 11. 2011 Sisältö 1 Syntaksimuunnos: cond->if
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 12: Dynaaminen sidonta, Lisp-kielistä, delay Riku Saikkonen 29. 11. 2011 Sisältö 1 Dynaaminen sidonta 2 Lisp-kielistä 3 DSL-kieli: Emacs Lisp 4 Laiskaa
LisätiedotDATA-vaiheen ohjelmoijan yleissivistys helposti unohtuvia asioita
Markku Suni Factotum emeritus Turun ammattikorkeakoulu DATA-vaiheen ohjelmoijan yleissivistys helposti unohtuvia asioita Aivan ensimmäiseksi haluan kiittää kuulijoita kuuntelusta Kuten tunnettu poliitikko
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotCommon 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ätiedot4. 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ätiedotTIE 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ätiedotRuby. 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ätiedotScheme-kesäkurssi luento 5
Scheme-kesäkurssi luento 5 Timo Lilja 29. 7. 2009 Sisältö 1 Rekisterikonekielen simulaattori 2 Muistinhallinta 3 Rekisterikonekielinen Scheme-tulkki 4 Kääntäjä Rekisterikonekielen simulaattori (SICP 5.2)
LisätiedotOHJ-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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 9: Miten oliot toteutetaan, skriptausta Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 18. 3. 2013 Sisältö 1 Oliot Scheme-tulkkiin
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS LOGIIKKAA TERMI: MUUTTUJA: A,B,C,... VAKIO: a,b,c,... PREDIKAATTI: SISÄLLÄ, ULKONA,... LAUSE: ULKONA(A) SISÄLLÄ(A) SITÄ ON JOKO ULKONA TAI SISÄLLÄ. LAUSE: ULKONA(A) SATAA
Lisätiedot4. 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ätiedot812336A C++ -kielen perusteet, 21.8.2010
812336A C++ -kielen perusteet, 21.8.2010 1. Vastaa lyhyesti seuraaviin kysymyksiin (1p kaikista): a) Mitä tarkoittaa funktion ylikuormittaminen (overloading)? b) Mitä tarkoittaa jäsenfunktion ylimääritys
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS LOGIIKKAA LINTU(A) LENTÄÄ(A) PINGVIINI(A) LINTU(A) PINGVIINI(tweety). LENTÄÄ(tweety) ISÄ(X,Y) LAPSI(Y,X) ÄITI(X,Y) LAPSI(Y,X) ISÄ(X,Y) ISÄ(Y,Z) LAPSENLAPSI(Z,X) ISOISÄ(X,Z)
LisätiedotJakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 Tieto ja sen osoite
LisätiedotTIE 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ätiedotLuento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke
LisätiedotScheme-kesäkurssi luento 4
Scheme-kesäkurssi luento 4 Riku Saikkonen 8. 7. 2009 Sisältö 1 Laiska tulkki 2 Amb-tulkki 3 Logiikkatulkki 4 Rekisterikone Laiska evaluointi (SICP 4.2.1) laiska evaluointi (lazy, normal-order, non-strict):
LisätiedotLuento 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ätiedotTieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC LOAD, =X LOAD R2, X int x =; symbolin X arvo muuttujan X arvo
LisätiedotRINNAKKAINEN OHJELMOINTI A,
RINNAKKAINEN OHJELMOINTI 815301A, 18.6.2005 1. Vastaa lyhyesti (2p kustakin): a) Mitkä ovat rinnakkaisen ohjelman oikeellisuuskriteerit? b) Mitä tarkoittaa laiska säikeen luominen? c) Mitä ovat kohtaaminen
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: Funktioiden käyttöä, lisää Schemestä, listat (mm. SICP 1.31.3.4, osin 22.2.3) Riku Saikkonen 17. 10. 2011 Sisältö 1 Scheme-ohjelmointikäytäntöjä 2 Funktiot
LisätiedotScheme-kesäkurssi luento 1
Scheme-kesäkurssi luento 1 Riku Saikkonen 24. 6. 2009 Sisältö 1 Kurssi 2 Scheme-kieli 3 SICP luku 1 4 SICP luku 2 Kurssijärjestelyt T-106.6200 Ohjelmistotekniikan erikoiskurssi, 68 op Kurssikirja: Abelson,
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Esittelyluento 2: Scheme-ohjelmointikieli ja mihin se on hyvä Riku Saikkonen 5. 10. 2010 Sisältö 1 Scheme-kielen pikaesittely 2 Kurssin käyttämästä kielestä 3
LisätiedotMakrojen mystinen maailma lyhyt oppimäärä
Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio
LisätiedotLuento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet
LisätiedotSe mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
LisätiedotADA. 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ätiedotOhjelmointi 1 C#, kevät 2013, 2. tentti
ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla
LisätiedotJakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 symbolit ovat yleensä
Lisätiedot812341A 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.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ätiedotAlternative DEA Models
Mat-2.4142 Alternative DEA Models 19.9.2007 Table of Contents Banker-Charnes-Cooper Model Additive Model Example Data Home assignment BCC Model (Banker-Charnes-Cooper) production frontiers spanned by convex
LisätiedotNykyisten ohjelmointikielten esi-isä: Algol60
Nykyisten ohjelmointikielten esi-isä: Algol60 Antti Krats akrats@cc.jyu.fi Kai Lahti kail@cc.jyu.fi Sami Setämaa sapetase@cc.jyu.fi 1 Johdanto Tiivistelmä Artikkelissa kuvataan Algol60 ohjelmointikielen
LisätiedotTIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. maaliskuuta 2012 Sisällys Ongelma-analyysiä Sisällys Ongelma-analyysiä Hypoteettinen ongelma The Elite Bugbusters
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 1: SICP luku 1 Riku Saikkonen 1. 11. 2010 Sisältö 1 Kurssijärjestelyitä 2 SICP-kirjasta 3 Häntärekursio 4 Rekursio 5 Funktiot argumentteina 6 Funktiot
LisätiedotInformation on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies
Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine 4.1.2018 Centre for Language and Communication Studies Puhutko suomea? -Hei! -Hei hei! -Moi! -Moi moi! -Terve! -Terve
LisätiedotOngelma(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ätiedotsamalla 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ätiedot7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
LisätiedotLuento 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 Tietokone
LisätiedotLuento 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ätiedot11/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ätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Kotitehtävä 6, toteuttakaa alla olevan luokka ja attribuutit (muuttujat) Kotitehtävä 6, toteuttakaa alla olevan luokka ja attribuutit (muuttujat) Huom!
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotProlog 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ätiedotTIES542 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ätiedotLuento 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ätiedotTä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ätiedotPERL. 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ätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: Funktioiden käyttöä, lisää Schemestä (mm. SICP 1.31.3.4) Riku Saikkonen 17. 10. 2011 Sisältö 1 Scheme-ohjelmointikäytäntöjä 2 Funktiot argumentteina
Lisätiedot815338A 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ätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
LisätiedotFinFamily PostgreSQL installation ( ) FinFamily PostgreSQL
FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...
LisätiedotLuento 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ätiedotHaskell 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ätiedotCapacity Utilization
Capacity Utilization Tim Schöneberg 28th November Agenda Introduction Fixed and variable input ressources Technical capacity utilization Price based capacity utilization measure Long run and short run
LisätiedotScheme-kesäkurssi luento 6
Scheme-kesäkurssi luento 6 Timo Lilja 3. 8. 2009 Sisältö 1 Kääntäjä 2 CLOS 3 FP, teollisuus ja tulevaisuus Lausekkeiden kääntäminen (SICP 5.5.2) jokaiselle lauseketyypille oma koodigeneraattori, joka päättyy
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 13: Scheme-tulkki Pythonilla, datan serialisointi, keväästä Riku Saikkonen 11. 12. 2012 Sisältö 1 Scheme-tulkki Pythonilla 2 Datan serialisointi 3 Suunnitelmia
LisätiedotOhjelmoinnista. 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ätiedotLuento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotEfficiency change over time
Efficiency change over time Heikki Tikanmäki Optimointiopin seminaari 14.11.2007 Contents Introduction (11.1) Window analysis (11.2) Example, application, analysis Malmquist index (11.3) Dealing with panel
LisätiedotRinnakkaisuus. 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