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



Samankaltaiset tiedostot
KYMENLAAKSON AMMATTIKORKEAKOULU

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

4. Lausekielinen ohjelmointi 4.1

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Pedacode Pikaopas. Web-sovelluksen luominen

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Kieliversiointityökalu Java-ohjelmistoon. Ohje

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

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

Pedacode Pikaopas. Web Service asiakasohjelman luominen

4. Lausekielinen ohjelmointi 4.1

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

Ohjelmointi 1 / syksy /20: IDE

5. HelloWorld-ohjelma 5.1

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

Raspin Geany-IDE:n etäkäyttö

Ohjelmointi 1. Kumppanit

NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Windows

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

BL40A1810 Mikroprosessorit, harjoitus 1

1. NetBeans-ohjelman asennus ja käyttöönotto pva

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Microsoft Visual Studio 2005

5. HelloWorld-ohjelma 5.1

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

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

Tekstieditorin käyttö ja kuvien käsittely

NetBeans asennus ja etäkäyttö C-kielen opiskeluun, Linux

Ohjelmoinnin perusteet Y Python

Linuxissa uusi elämä 1

Paavo Räisänen. WampServer palvelimen asennus ja käyttö Eclipsen kanssa, sekä ensimmäinen FTP yhteys.

Laiteläheinen C-kieli, mitä C-käännösprosessissa tapahtuu

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

C++ Ohjelmoijan käsikirja. Johdanto

Let Me Hack It -kurssilla tarvittavat ohjelmat ja välineet

Ohjelmoinnin peruskurssi Y1

UCOT-Sovellusprojekti. Asennusohje

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Eclipse 3.1 Pikaopas versio 1.0

CTRL+F Android-sovellus

Maiju Mykkänen Susanna Sällinen

Octave-opas. Mikä on Octave ja miksi? Asennus

Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 IT Juha Nalli

Projektin luonti LPCXpressolla

Johdatus ohjelmointiin

Ohjelmoinnin peruskurssi Y1

Testivetoinen ohjelmistokehitys

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

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

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

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

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Mathcad 14.0 Single User -asennus

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

Ohjelmoinnin perusteet Y Python

Varmuuskopiointi ja palauttaminen Käyttöopas

Purot.net Wiki. Tutkielma. Paavo Räisänen. Centria Ammattikorkeakoulu

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

Suvi Junes/Pauliina Munter Tietohallinto / Opetusteknologiapalvelut 2014

Työkalut ohjelmistokehityksen tukena

UpdateIT 2010: Editorin käyttöohje

VHOPE-sovelluksen ja VHOPE-kirjastotiedostojen asentaminen

Johdatus ohjelmointiin

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

Ohjelmoinnin peruskurssi Y1

Punomo Blogit BLOGIN LUOMINEN WORDPRESS-ALUSTALLA

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Web Services tietokantaohjelmoinnin perusteet

Jypelin käyttöohjeet» Ruutukentän luominen

11/20: Konepelti auki

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: Projekti : AgileElephant

Harjoitus 3 Antti Hartikainen

Uutta Remote Support Platform 3.1 -versiossa

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

WINE API ja Virtualisointiohjelmistot

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

TIE Principles of Programming Languages CEYLON

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Selainpelien pelimoottorit

Vesa Ollikainen, päivitys Juha Haataja

P-touch Transfer Managerin käyttäminen

Tech Conference Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

erasmartcardkortinlukijaohjelmiston

Office_365_loppukäyttäjän ohje Esa Väistö

zotero

PÄIVITÄ TIETOKONEESI

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

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu

Käyttöohjeet. Sovellussivusto

Ohjelmoinnin perusteet Y Python

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Tikon Web-sovellukset

Pörisevä tietokone. morsetusta äänikortilla ja mikrofonilla

ASENNUS- JA KÄYTTÖOHJE

Hellä ensikosketus. Tomi Kiviniemi

Gimp JA MUUT KUVANKÄSITTELYOHJELMAT

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Transkriptio:

Ohjelmointi Linuxissa Tehnyt: Antti Martikainen (1300698) Sisällysluettelo 1. Mitä tarvitaan sovellusten tuottamiseen?...1 2. GNU Toolchain...2 3. Tekstieditorit...2 4. Hello world-sovelluksen luominen vi-editorilla...3 5. Ohjelmointiympäristöt...4 6. Hello world-sovelluksen luominen Eclipsella...6 7. Lähteet...7 1. Mitä tarvitaan sovellusten tuottamiseen? Sovellusten ja ohjelmistojen tuottamiseen vaaditaan kolme asiaa: tekstieditori, kääntäjä ja standardikirjasto. Tekstieditorilla, joka voi olla mikä tahansa tekstin tuottamiseen tarkoitettu sovellus, kirjoitetaan itse lähdekoodi. Lähdekoodi voidaan kirjoittaa millä tahansa tuhansilla ohjelmointikielillä, joista suosituimpia ovat mm. C, C++, Java, Perl, PHP ja Python. Linuxille on saatavilla useita ohjelmointiin soveltuvia perustekstieditoreita, kuten vi, gedit, kedit ja emacs. Kääntäjä nimensä mukaisesti kääntää tai tulkkaa ohjelmointikielellä kirjoitetun lähdekoodin tietokoneen ymmärtämään muotoon, jotta tietokoneen prosessorit voivat käsitellä koodin binäärimuotoisena. Jotkin kääntäjät kääntävät yhdestä ohjelmointikielestä toiselle ohjelmointikielelle. Natiivikääntäjät kääntävät koodin samalle alustalle kuin millä koodi on tuotettu, kun taas ristiinkääntäjät voivat kääntää koodia myös muilla alustoilla toimivaksi. Kääntäjien tehtävänä on myös mm. koodin nopeuden maksimointi ja koon minimointi sekä kääntämisprosessin nopeuden maksimointi. Standardikirjastot sisältävät kokoelman ohjelmointikielelle ominaisia yleisesti käytettyjä aliohjelmia ja luokkia. Standardikirjasto sisältää samat aliohjelmat valmistajasta riippumatta. Fedo-

ran asennuksen yhteydessä asennetaan The GNU libc-kirjasto (glibc), joka sisältää C-kielen standardikirjaston ja matematiikkakirjaston. 2. GNU Toolchain GNA Toolchain on kattotermi, joka sisältää kokoelman GNU Projectin valmistamia ohjelmointityökaluja. Se kattaa kaiken tarvittavan sovellusten ja käyttöliittymien tuottamiseen. Se sisältää seuraavat komponentit: GNU Compiler Collection (GCC) sisältää kääntäjät C-, C++-, Objective C-, Fortran-, Java- and Ada-ohjelmointikielille. GCC:tä pidetään yhtenä maailman tärkeimpinä ilmaisina tuotteina. GNU make on työkalu, joka käytetään ohjelmien buildaukseen ja makefilejen tuottamiseen. Buildaus kattaa koodin kääntämisen, linkittämisen, pakkaamiseen, testauksen ja dokumennoinnin. GNU Binutils sisältää linkittäjän (koodikirjastojen yhdistäjän), assemblerin (symbolisen konekielen kääntäjän) ja muita työkaluja, joita käytetään yhdessä kääntäjien kanssa GNU Bisons on parser generator, joka käsittelee ohjelmointikielen kielioppisääntöjä GNU Debugger (GDB) on koodin debuggaustyökalu, jota käytetään ohjelman muokkaamiseen ja virheiden jäljittämiseen ajon aikana GNU build system (autotools) sisältää työkaluja koodipaketin siirtämiseen Unix-tyyppisten järjestelmien välillä. Se sisältää GNU Autoconf-, GNU automake-, GNU Libtool- ja Gnulibtyökalut. GNU m4-makroprosessori (preprosessori) käsittelee tekstinkäsittelyä ja tekstin korvaamista 3. Tekstieditorit Vi ja nano ovat Fedoran asennuksen yhteydessä asennettavia tekstieditoreita. Vi:stä (englannin kielen sanasta visual ) on olemassa pidemmälle kehiteltyjä versioita, kuten nvi (new vi) ja

vim (vi improved). Vi-tekstieditori käynnistetään terminaalissa vi-komennolla, jolloin sovellus aukeaa muokkaustilassa. I-näppäimellä päästään kirjoitustilaan, jossa voidaan kirjoittaa tekstiä asiakirjaan. Kirjoitustilasta poistutaan esc-näppäimellä muokkastilaan, jossa asiakirja voidaan esimerkiksi tallentaa ctrl+w-komennolla ja sovelluksesta poistutaan ctrl+x-komennolla. Nanoeditori toimii samalla tavalla, mutta tallentaminen tapahtuu ctrl+o-komennolla. Emacs on erityisen suosittu tekstieditori ohjelmoijien piirissä. Emacs on suurempi ja monipuolisempi kuin vi ja nano, mutta myös vaikeakäyttöisempi, raskaampi ja monimutkaisempi. Emacsissa on ohjelmointitila, jossa on mahdollista saada käyttöön rajoitettuja ohjelmointiympäristön ominaisuuksia, kuten syntaktin väritys sekä erilaisia menu-toimintoja, jotka auttavat koodin luettavuudessa. Emacs tunnistaa käsiteltävän tekstitiedoston päätteestä, missä tilassa sitä muokataan, Windowsin Notepad++-editorin tapaan. 4. Hello world-sovelluksen luominen vi-editorilla Tässä käydään pikaisesti läpi, kuinka vi-editorilla voi luoda perinteisen Hello worldsovelluksen C-kielellä. Käynnistetään terminaalissa vi-editori ja luodaan uusi C-päätteinen tiedosto haluttuun hakemistoon: vi hello.c Tämän jälkeen avautuvassa editorissa painetaan I-näppäintä, joilloin päästään kirjoitustilaan. Kirjoitetaan editoriin seuraava lähdekoodi: #include <stdio.h> main() { printf( Hello world! \n ); return 0; }

Lähdekoodi lienee melko tuttu kaikille ohjelmoinnin peruskurssin käyneelle. Aluksi otetaan käyttöön C-standardikirjasto, sillä sovelluksen halutaan kirjoittaa näkyviin tekstiä prinftmetodilla. Main()-metodi on sovelluksen päämetodi, jossa määritellään, että halutaan kirjoittaa näkyviin Hello World sekä rivinvaihto. Metodi päätetään return 0 -vakiokomennolla, sillä C- ja C++-kielissä kaikki metodit palauttavat jonkun arvon. Koodin kirjoittamisen jälkeen tekstitilasta poistutaan esc-näppäimellä, ja tiedoston sisältö tallennetaan ctrl+wnäppäinyhdistelmällä, minkä jäleen tekstieditorista poistutaan ctrl+x-näppäinyhdistelmällä. Tämän jälkeen terminaalissa käännetään tehty lähdekoodi GCC:n C-kääntäjällä: gcc o hello hello.c Gcc-komento viittaa C-kielen kääntäjään. Mikäli käännettäisiin esim. C++-tiedostoja, olisi vastaava komento g++. o hello-komento määrittää kääntäjälle halutun polun ja nimen luotavalle sovellukselle ja hello.c-komento määrittää käännettävän lähdekooditiedoston polun ja nimen. Tässä tapauksessa luodaan hello-niminen sovellus samaan kansioon kuin hello.clähdekoodikin. Tämän jälkeen sovellus voidaan ajaa samaan tapaan kuin muutkin sovellukset, kirjoittamalla terminaalissa sovelluksen nimi, eli hello, jolloin terminaaliin pitäisi ilmestyä (mikäli kääntäjä ei havaitse lähdekoodissa virheitä) teksti Hello world!. 5. Ohjelmointiympäristöt Ohjelmointiympäristö (IDE, integrated development environment) on integroitu joukko ohjelmia, joilla voidaan toteuttaa ohjelmistoja käyttämättä erillisiä ohjelmia esim. ohjelmointiin, kääntämiseen, linkittämiseen, virheenetsintään tai buildaukseen. Ohjelmointiympäristöjen perusominaisuuksia ovat mm. syntaksikorostus (koodin värittäminen), lauseiden ennakoiminen ja syntaksivaihtoehtojen esittäminen (intellisense), koodin ulkoasun automaattinen muotoilu, virhetilanteiden ja käyttämättömien muuttujien paikantaminen ja korjausehdotusten antaminen, ohjelman ajaminen debug-tilassa ja tuki useille ohjelmointikielille ja erinäisille liitännäisille.

Joissakin tapauksissa koodia voi tehdä vain hiirtä klikkailemalla ja käyttämällä valmiita pohjia. Linuxille on tarjolla iso määrä erilaisia ohjelmointiympäristöjä, jotka on tarkoitettu käytettäväksi lähinnä jollain tietyllä ohjelmointikielellä, mutta jotka useimmiten toimivat muilla kielillä liitännäisten avulla. Seuraavassa on esitelty joitakin suosituimpia ohjelmointiympäristöjä Eclipse Käytetään pääasiassa Java-ohjelmointiin, mutta sisältää laajat liitännäismahdollisuudet muille ohjelmointikielille (Ada, ABAP, C, C++, COBOL, Fortran, Haskell, JavaScript, Lasso, Perl, PHP, Python, R, Ruby, Scala, Clojure, Groovy, Scheme ja Erlang). Sisältää tuen erillisille C++- ja Java-ohjelmointiympäristöille erillisillä JDT- ja CDT-paketeilla. Komodo Sisältää mm. kehittyneen koodieditorin, intellisensen, graafisen debuggauksen, erilaisia integroituja työkaluja, liittännäisiä sekä samanlaiset ominaisuudet eri alustoille (Macille, Linuxille ja Windowsille). Toisin kuin suurin osa Linuxin ohjelmointiympäristöistä, Komodo on maksullinen. Komodoa käytetään pääasiassa web-kielillä ohjelmointiin: Python, PHP, Ruby, Perl, HTML, CSS ja JavaScript. Code::Blocks Perustuu myös liitännäisiin, joilla ohjelmointiympäristöä voi muokata halutunlaiseksi. Sisältää tärkeimmät IDE-ominaisuudet pääasiassa C-, C++- ja Fortran-kielille. Toimii Linuxin lisäksi Macilla ja Windowsilla. Netbeans Tarkoitettu pääasiassa Java-, JavaScript-, HTML-, PHP-, Python-, Ruby-, Groovy-, C-, C++-, Scala- ja Clojure-kielille. Sisältää mm. helppokäyttöisen GUI-rakentajan ja visuaalisen mobiili-, web- ja Java-kehitysympäristön.

MonoDevelop Käytetään pääasiassa C#-kielellä sekä muilla.net-kielillä ohjelmoimiseen. Voidaan helposti siirtää koodia esim. Windowsin Visual Studiosta Linuxille. Muita saatavilla olevia ohjelmointiympäristöjä ovat mm. CodeLite, Anjuta, Geany, KDevelop, Oracle Solaris Studio, Lazarus, Qt Creator ja Sublime text, jotka keskittyvät kaikki tiettyihin ohjelmointikieliin ja niitä voidaan laajentaa liitännäisillä. 6. Hello world-sovelluksen luominen Eclipsella Eclipse on monipuolinen ohjelmointiympäristö, joka tukee mm. Java- ja C++-kieliä. Seuraava esimerkki toteutetaan Eclipsen C++-tilassa, jota varten tarvitaan erikseen ladattava C/C++ Development Toolkit (CDT) -paketti, ja tietenkin myös Eclipse tulee erikseen ladata ja asentaa. Eclipse avataan eclipse-komennolla terminaalissa. Eclipsen perusnäyttötila koostuu keskellä olevasta koodieditorista, yläosan valikoista, alaosan konsoli-ja debuggaus-ikkunasta, vasemman reunan projektimanagerista sekä oikean reunan Outline-ikkunasta, jossa näytetään koodissa käytetyt muuttujat, aliohjelmat ja luokat. Hello world-sovellus voidaan Eclipsella luoda valmiista pohjasta. Kun C++-paketti on asennettu, voidaan C++-projekteja luoda valitsemalla File/New/Project ja valitsemalla projektin tyypiksi C++ project, jolloin C++ Project Wizard aukeaa. Tässä vaiheessa voidaan valita käytettävä toolchain riippuen siitä, halutaanko tehdä alustojen välinen vai pelkästään Linuxilla toimiva sovellus. Project types-listasta voidaan valita projektin tyypiksi Hello World C++ Project ja nimetä se halutulla nimellä. Muissa ikkunoissa voidaan jättää oletusarvot päälle ja painaa Next ja lopuksi Finnish. Tulostettua tekstiä voi tosin muuttaa jo Basic Settings-ikkunan Hello world greeting-kohdassa. Tämän jälkeen projektimanagerissa pitäisi avautua äsken luotu projekti ja koodieditorissa näkyä sen lähdekoodi, jonka on tarkoitus tulostaa samanlainen teksti kuin aiemmassa C-kielellä

tehdyssä sovelluksessa, mutta tällä kertaa C++-kielellä toteutettuna, joten syntaksi on hieman erilainen: #include <iostream.h> int main(void) { cout << "Hello world!" << endl; return 0; } Kun koodin toimivuutta halutaan testata, ei erillistä kääntäjää tarvitse ajaa terminaalista, vaan koodi voidaan buildata Eclipsen sisällä valitsemalla File/Build Project. Buildaaminen kattaa kääntämisen lisäksi kirjastojen linkittämisen, joten erillistä kääntämistä ei tarvitse suorittaa. Konsolinäkymässä näkyy buildauksen tiedot. Tämän jälkeen sovellusta voidaan testata valtisemalla Run/Run Last Launched/Run, minkä jälkeen sovelluksen tulosteen ( Hello world! ) pitäisi ilmestyä konsolinäkymään. Toki tällaista sovellusta ei kukaan tee, mutta tämä esimerkki kuvaa sitä, kuinka paljon yksinkertaisempaa on aloittelevan ohjelmoijan toteuttaa yksinkertaisia sovelluksia ohjelmointiympäristössä, kun ohjelma ilmoittaa virheistä ja muokkaa koodin luettavampaan muotoon ja koodin toimivuuden testaaminen on nopeampaa. 7. Lähteet http://www.linfo.org/create_c1.html http://www.linfo.org/gcc.html http://www.linfo.org/compiler.html https://admin.fedoraproject.org/pkgdb/acls/name/glibc http://en.wikipedia.org/wiki/gnu_toolchain http://linux.fi/wiki/emacsin_perusk%c3%a4ytt%c3%b6 http://fi.wikipedia.org/wiki/ohjelmointiymp%c3%a4rist%c3%b6

http://komodoide.com/ http://www.eclipse.org/ http://fi.wikipedia.org/wiki/eclipse_(ide) http://www.codeblocks.org/ https://netbeans.org/ http://www.linuxlinks.com/article/20080426144510229/netbeans.html http://en.wikipedia.org/wiki/netbeans http://monodevelop.com/ http://penguininside.blogspot.fi/2009/08/top-10-multi-language-ides-for-linux.html http://www.linuxlinks.com/article/20090620114618990/ide.html