4. Lausekielinen ohjelmointi 4.1



Samankaltaiset tiedostot
4. Lausekielinen ohjelmointi 4.1

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1

13. Hyvä ohjelmointitapa (osa 1) 13.1

14. Hyvä ohjelmointitapa 14.1

Ohjelmointi 1. Kumppanit

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

TIE Johdatus ohjelmointiin

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

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

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

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

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

12. Näppäimistöltä lukeminen 12.1

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

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

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

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

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

Käännös, linkitys ja lataus

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

4. Luokan testaus ja käyttö olion kautta 4.1

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Pakkauksen kokoaminen

Toinen harjoitustyö. ASCII-grafiikkaa 2017

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

15. Ohjelmoinnin tekniikkaa 15.1

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet, syksy 2006

Luento 4. Timo Savola. 21. huhtikuuta 2006

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Ohjelmoinnin perusteet Y Python

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

Ohjelmoinnin perusteet Y Python

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Harjoitus 5 (viikko 48)

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

8. Näppäimistöltä lukeminen 8.1

Luento 5. Timo Savola. 28. huhtikuuta 2006

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Sisällys. JAVA-OHJELMOINTI Osa 1: Ohjelmoinnin perusteita. Ohjelmoinnin kehityssuuntia. Ohjelmointi luvuilla. Ohjelmointi luvuilla

8. Näppäimistöltä lukeminen 8.1

Tietotyypit ja operaattorit

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

1. Omat operaatiot 1.1

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Ohjelmoinnin peruskurssi Y1

Harjoitustyö Johdanto. 2. Euroseteli

Jypelin käyttöohjeet» Ruutukentän luominen

Visual Basic -sovelluskehitin Juha Vitikka

Ohjelmointi 1 / syksy /20: IDE

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

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

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

15. Ohjelmoinnin tekniikkaa 15.1

OHJELMOINNIN TYYLISÄÄNTÖJÄ

Pakkauksen kokoaminen

M. Merikanto 2012 XML. Merkkauskieli, osa 2

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

T Ohjelmoinnin perusteet Y (Python) Opetusmoniste kevät 2010

UpdateIT 2010: Uutisten päivitys

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Harjoitustyö: virtuaalikone

Toinen harjoitustyö. ASCII-grafiikkaa

MITÄ JAVASCRIPT ON?...3

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

etunimi, sukunimi ja opiskelijanumero ja näillä

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

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

T Ohjelmoinnin perusteet Y (Python)

Ohjelmoinnin perusteet Y Python

Ohjelmistojen mallintaminen

Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet:

2 Konekieli, aliohjelmat, keskeytykset

Virtuaalikoneiden generointi Vmgen-kääntäjällä

Harjoitus 2 (viikko 45)

Goalkeeper Game Statistics (v12) käyttöohjeet

TIEDEJUTTUKURSSI FM VILLE SALMINEN

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

7. Näytölle tulostaminen 7.1

Ohjelmoinnin perusteet Y Python

Johdatus ohjelmointiin

Sandstone www-termienpoimintapalvelu

Ohjelmoinnin peruskurssi Y1

Transkriptio:

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, tulkinta ja Java. 4.2

Konekieli ja symbolinen konekieli Aluksi ohjelmoitiin tietokoneiden sellaisenaan ymmärtämällä konekielellä (machine language), jossa suorittimen komennot ja niiden parametrit esitetään binäärilukuina. Symbolisessa konekielessä (assembly language) komennoille on annettu lyhyet nimet. Erästä suoritinta voitaisiin käskeä sijoittamaan akkuun (suorittimen rekisteri) luku yksi seuraavasti: 10101001 00000001 tai LDA #$01. Tällaisten kielten käyttö on vaikeaa ja eikä ohjelmia voi ajaa toisen tyyppisellä suorittimella. 4.3

Lausekieli Abstraktimpi kieli, hieman luonnollisen kielen kaltainen. Luonnollisen kielen käyttö ohjelmoinnissa vaikeaa kieliopin monimutkaisuuden sekä lauseiden ja sanojen moniselitteisyyden vuoksi. Lausekielinen ohjelmointi mahdollista rajatun kieliopin ja sanaston sekä kääntäjä- ja tulkkiohjelmien ansiosta. Kielimuurin yli lausekielellä: Lausekieli konekieleksi kääntäjällä ja/tai tulkilla. 10101010111 00010... Kasvatetaan laskurimuuttujaa i yhdellä.... i = i + 1;... Ajatus ohjelmaksi. 4.4

Lausekieli Sanasto pääosin tunnuksia (identifier) ja varattuja sanoja (reserved word). Tunnukset ovat nimiä: esimerkiksi muuttujien ja operaatioiden nimet ovat tunnuksia. Varattuja sanoja käytetään muun muassa kielen ohjausrakenteiden esittämiseen. Varatut sanat on tavallisesti valittu englannin kielestä (esimerkiksi if ja while), eikä niitä voi käyttää omina tunnuksina. Ohjelmat tyypillisesti suoritinriippumattomia ja hyvin tehtyinä siirrettävissä käyttöjärjestelmien välillä. Ensimmäiset lausekielet esiteltiin jo 1950-luvulla. Muun muassa Basic, Pascal, C, C++ ja Java. Termi high level language käännetään usein lausekieleksi tai korkean tason kieleksi. Lausekieliä on kuitenkin eritasoisia: C vs. Java. 4.5

Lähdekoodi ja tekstitiedosto Lausekielinen ohjelma eli lähdekoodi (source code) tallennetaan tekstitiedostoksi (text file). Koostuu kirjaimista, numeroista, välimerkeistä ja näkymättömistä ohjausmerkeistä (muun muassa rivinvaihto- ja tabulaattori). Lähdekoodiin ei voi sijoittaa tekstin muotoiluja (esim. lihavointi) tai kuvia. Käyttöjärjestelmien merkistöt ovat erilaisia, jolloin järjestelmästä toiseen siirretyn lähdekooditiedoston merkkejä saattaa näkyä eri merkkeinä ja muunnos konekieleksi ei aina onnistu. Joskus lähdekoodin siirrettävyyttä parannetaan käyttämällä tunnuksissa vain alkuperäistä ASCII-merkistöä, joka on osa useampia muita merkistöjä. Näin toimien å-, ö-, ä-, Å-, Ä- ja Ö- merkkejä voi käyttää vain kommenteissa. 4.6

Tekstieditorit Tekstitiedostoja tehdään yksinkertaisilla tekstinkäsittelyohjelmilla eli tekstieditoreilla. Kurssilla riittää editori, joka osaa näyttää rivinumeron. Esimerkiksi Notepad (Windows) tai nano (UNIX). Kurssin kotisivuilla linkkejä parempiin editoreihin ja ohjeita Notepad++:n (Windows) ja TextWranglerin (Mac) käyttöön. Laajempien ohjelmien tekoon löytyy ohjelmointiympäristöjä (esimerkiksi Eclipse). Microsoft Word -ohjelma ei ole tarkoitettu ohjelmointiin vaan monipuoliseen tekstinkäsittelyyn. Aloittelevan ohjelmoijan ei kannata edes yrittää kirjoittaa ohjelmia Wordillä! 4.7

Kääntäminen ja tulkinta Ihminen ymmärtää lausekielistä lähdekoodia, mutta tietokoneelle koodi on liian monimutkaista. Koodi onkin muutettava tietokoneen ymmärtämään muotoon, konekielelle. Konekieli on ihmiselle käsittämätöntä, mutta tämä ei ole ongelma, koska yleensä konekieltä ei tarvitse muuttaa takaisin lausekieleksi. Kieliraja voidaan ylittää luonnollisen kielen tapaan lähdekoodia konekieleksi kääntämällä (compile) ja tulkitsemalla (interpret). 4.8

Kääntäminen ja tulkinta Kääntäjäohjelma muuttaa lähdekoodin suoraan konekieliseksi tiedostoksi eli suoritettavaksi ohjelmaksi. lähdekooditiedosto Tulkittavan kielen lähdekoodi suoritetaan erillisellä ohjelmalla eli tulkilla, joka muuttaa ajonaikaisesti lähdekoodin konekieleksi. lähdekoodi lähdekooditiedosto konekieli konekielinen tiedosto kääntäjä lähdekoodi konekieli tulkki konekieli suoritin suoritin 4.9

Kääntäminen ja tulkinta Ohjelman oltava kieliopillisesti täysin oikein, jotta tulkkaus tai kääntäminen onnistuisi: Kielioppivirheistä ilmoitetaan yleensä virheen tyyppi ja rivi, jolta virhe löytyi. Käännetty koodi on yleensä tulkattavaa koodia nopeampaa, mutta tulkattavalla kielellä on helpompi tehdä pieniä testejä. Käännettäviä lausekieliä ovat esimerkiksi Pascal, C ja C++ ja tulkattavia kieliä muun muassa Basic. 4.10

Kääntäminen, tulkinta ja Java Javassa lähdekoodi käännetään ensin tavukoodiksi (bytecode). Tavukoodi suoritetaan sitten tulkin avulla virtuaalikoneessa (virtual machine). Tavukoodin ansiosta Javasovellukset ovat siirrettäviä. Sama tavukoodi voidaan suorittaa kaikkialla missä on tarjolla virtuaalikone (esim. Windows, Linux ja Mac). lähdekooditiedosto lähdekoodi kääntäjä tavukoodi tavukooditiedosto tavukoodi konekieli tulkki suoritin 4.11