13 Programiranje
Zapravo, programeri su kategorija ljudi koja najviše voli Linux. Razlog za to je dobar izbor prevodilaca za gotovo svaki popularni programski jezik. Uz BHLD2 dolazi mnogo kompajlera i interpretera za programske jezike, od starijih (ali i dalje korištenih na mnogim školama i fakultetima) Fortrana i COBOLa, preko očekivanih C-a i Perla, sve do avangardnih Ruby-ja i C#. Sve nećete koristiti, ali su vam na raspolaganju. Kada u Konqueroru otvorite stranicu
help:/kubuntu/about-kubuntu/bhld/docs/bhld_guide_devel.html
vidjećete primjere u raznim programskim jezicima. U štampanoj verziji uputstva ovi primjeri nisu navedeni, nego samo kako se poziva kompajler ili interpreter datog programskog jezika. U svim primjerima, možete tekst programa u jeziku koji želite isprobati kopirati i umetnuti u neki editor teksta. Većina kompajlera se poziva iz komandne linije, ali imaju i dva grafička razvojna okruženja.
Treba reći, naravno, da se programi pisani u programskim jezicima izvršavaju u tri okruženja, tekstualnom, grafičkom i Web. Ovdje su dati samo primjeri za tekstualno okruženje. Za pravljenje programa za ostala okruženja, često su potrebne dodatne biblioteke ili servisi koje možete preuzeti nakon instalacije BHLDa na hard disk.
13.1 Java
Java je popularni programski jezik, prije svega namijenjen za Internet programiranje. Odlikuje se multiplatformskim izvršnim okruženjem. IBM kompajler Jikes i SUN JDK izvršno okruženje su uključeni u BHLD.
Prije kompajliranja JAVA programa treba u shellu postaviti stazu
export JIKESPATH=/usr/lib/jvm/java-6-sun-1.6.0.07/jre/lib/rt.jar
Unesite program pod imenom bottlesjava.java
Kompajlirajte sa
jikes bottlesjava.java
Startajte sa
java bottlesjava
13.2 C
C je najvažniji Unix programski jezik i većina programa je pisana u ovom jeziku. Ako se datoteka sa tekstom programa zove bottlesc.c,
Kompajlirajte sa
gcc -o bottlesc bottlesc.c
Startajte sa
./bottlesc
13.3 C++
Objektno proširenje jezika C je također veoma popularan programski jezik. Za primjer upotrebe ovog programskog jezika
Otvorite editor i unesite datoteku bottlescpp.cpp
Kompajlirajte sa
g++ bottlescpp.cpp -o bottlescpp
Startajte sa
./bottlescpp
13.4 C#
Ako želite kompatibilnost sa .NET platformom, BHLD uključuje MONO, skup klasa i kompajlera koji omogućavaju pod Linuxom start programa namijenjenih za .NET platformu. Uz pretpostavku da ste unijeli primjer beer.cs
Prevedite sa
gmcs beer.cs
Izvršite sa
mono beer.exe
13.5 Fortran 77
Ni ovaj jezik nije mrtav, iako je jedan od najstarijih. Posebno ga vole numeričari, a i izučava se na nekim tehničkim fakultetima. Kompajler za Fortran pod BHLD interno prevodi fortranske programe u C. Ako se testni primjer zove bottlesfor.f
Kompajlirajte ga s
fort77 bottlesfor.f -o bottlesfor
Izvršite sa
./bottlesfor
13.6 COBOL
Mnogo poslovnih programa je napisano u COBOL-u, a i u ekonomskim fakultetima i školama to je čest izbor programskog jezika. Ako se primjer u COBOL-u zove bottlescob.cob
Kompajlirajte ga sa
cobc -x bottlescob.cob
Izvršite sa sa
./bottlescob
13.7 BASH
Kako ste već vidjeli u poglavlju o komandnoj liniji, BASH skripte se mogu pokrenuti nakon što im je postavljeno izvršno pravo. Kreirajte datoteku bottlesshell s primjerom u Shell jeziku.
Promijenite prava
chmod 755 bottlesshell
Izvršite sa
./bottlesshell
13.8 PERL
Popularni interpretirani jezik Perl je često korišten na Unix sistemima pogotovo zbog njegovih mogućnosti analize teksta. Uz pretpostavku da datoteka bottlseperl.pl sadrži odgovarajući prvi red, možete pokrenuti program u Perlu na sljedeći način
chmod 755 bottlesperl.pl
Izvršite sa
perl bottlesperl.pl
ili
./bottlesperl.pl
13.9 AWK
Prije pojave Perl-a za analizu datoteka dosta se koristio AWK. Kako je u pitanju skriptni jezik, način upotrebe je sličan. Unesite bottlesawk.awk
Promijenite prava
chmod 755 bottlesawk.awk
Izvršite sa
./bottlesawk.awk
ili
awk -f bottlesawk.awk
13.10 PYTHON
I ovo je popularni skriptni jezik, koji se interpretira ali ima i poluprevedeni format. Programi u Pythonu se pokreću na sličan način kao u slučaju PERL-a
chmod 755 bottlespyt.py
Izvršite s
python bottlespyt.py
ili
$ ./bottlespyt.py
13.11 PASCAL
Omiljeni jezik ljudi koji preferiraju preglednost koda i automatsko rješavanje zavisnosti među datotekama, kao i jedan od najčešćih jezika u srednjim školama, uključen je i u BHLD. Ako se primjer zove bottlespas.pas, prevedite ga s
$ fpc bottlespas.pas
Startajte s
$ ./bottlespas
13.12 Ruby
Snaga objektno orijentisanog programiranja se posebno vidi u ovom programskom jeziku. Ako ste unijeli primjer bottlesruby.rub možete ga izvršiti sa
$ ruby bottlesruby.rub
13.13 Prolog
Jezik za pravljenje ekspertnih sistema i vještačku inteligenciju predstavlja potpuno drugačiji način programiranja od onog na koji ste navikli. Da isprobat prolog interpreter unesite program u datoteku beer.pro, startajte prolog interpreter:
$ prolog
?- consult('beer.pro').
?- drink(beer,99).
Izlazak iz prologa se obavlja s Ctrl+C pa E
13.14 Lisp
U BHLD nije inicijalno ugrađen poseban interpreter ovog jezika pogodnog za simboličke manipulacije, ali on je interni jezik matematičkog paketa Maxima. Stoga ako želite unijeti program u Lispu, unesite u editor bottleslisp.lisp
Pokrenite s
$ maxima -p bottleslisp.lisp
U maxima interpreteru otkucajte
:lisp (bottles-of-bier 99)
13.15 NASM asembler
Mnogi asemblerski programeri smatraju Intelovu sintaksu ugodnijom od AT&T sintakse, pa stoga postoji i Linux verzija NASM asemblera. Da pokrenete ovaj asembler, unesite program u datoteku hello.asm
Prevedite i izvršite sa
nasm -f elf hello.asm
ld -s -o hello hello.o
./hello
13.16 GNU assembler
Linux kernel je pisan koristeći C i GNU asembler. Program napisani u ovom asemblerskom jeziku pod imenom hello-world.s se prevodi i pokreće sa
as -o hello-world.o hello-world.s
ld -o hello-world -O0 hello-world.o
./hello-world
13.17 Forth
Spada u dosta neobične programske jezike jer izraze predstavlja u obrnutoj poljskoj notaciji. Za probu programa u Forthu pokrenite
$ yforth
i unesite definiciju riječi. Zatim startajte program unoseći ime finalne riječi
13.18 BASIC
Ovo je zgodan jezik za programiranje na brzinu, i često korišten u osnovnim školama. Uz BHLD dolazi interpreter bwbasic, koji dopušta interaktivno kucanje komandi, ali možete i unijeti program u editor pod imenom bottlesbas.bas i pokrenuti sa
bwbasic bottlesbas.bas
Izadđite iz interptera sa
system.
I emulatori ZX Spectruma i Commodore računara također imaju ugrađene BASIC interpretere.
13.19 SQLITE
Mali interpreter za SQL SQLite također dopušta da se naredbe ovog jezika proslijede iz datoteke. Ako se datoteka s SQL naredbama zove beerproc.sql
Za pokretanje otkucajte
sqlite3 beer
a zatim unutar sqlite
.read beerproc.sql
1.20 Postscript
Postscript se najčešće koristi za programiranje laserskih štampača, ali se njim često prikazuju stranice i na ekranu. Postscript programe možete pregledati programom kpdf ili kghostview.
13.21 TCL/TK
TCL i TCL/TK su dosta korišteni skriptni jezici za pravljenje korisničkog interfejsa. Ako se naš primjer u tcl zove beertcl.tcl , a primjer u TCL/TK beertk.tcl možete ih izvršiti sa
tclsh beertcl.tcl
ili
wish beertk.tcl
13.22 Lazarus
Lazarus je razvojni alat kompatibilan s Windows alatom Delphi. Njegov programski jezik je baziran na jeziku Pascal. U njemu je veoma lako razvijati aplikacije sa korisničkim interfejsom i za pristup bazama podataka. U vrhu ekrana se nalazi glavni meni s paletom komponenti. Na lijevoj strani je Object inspector u kome imamo parametre svih komponenti, a najveći dio zauzima tekst programa i izgled prozora programa.
Sa palete komponenti se lako prebacuju komponente na prozor programa koji se razvija, a koji se inicijalno zove Form1. Kliknite na paletu Standard, zatim na komponentu Tedit na toj paleti, pa na prozor Form1. Na formi se pojavila nova komponenta Edit1. Isto možete uraditi komponentom Tbutton na standardnoj paleti. Generička imena ovih komponenti (kao i mnoštvo drugih svojstava) moguće je promijeniti u Object Inspectoru.
Object Inspector također sadrži i događaje na koje dopisujemo odgovarajući kod. Na primjer, ako želite da klik na dugme Button1 promjeni njegov naslov na sadržaj tekstualnog polja Edit1, u Object Inspectoru u kartici Events odaberetr OnClick, dva puta kliknetr na to polje, i dovršite kod
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Caption:=Edit1.Text;
end;
Po izboru menija Run, već je generisana aplikacija. Cijeli projekat se može snimiti sa File→Save All, a novi prozori dodavati sa File→New Form.
.
13.23 Razvoj aplikacija s Kdevelop
Kdevelop je integrisano okruženje za razne programske jezike, najčešće su to C i C++. Nakon pokretanja aplikacije potrebno je kreirati novi projekt ili otvoriti postojeći. Postojeći projekt otvara se odabirom menija Projekat→Otvori Projekat . Novi se stvara na sljedeći način:
1. odabrati meni Projekat→Novi Projekat
2. u otvorenom prozoru (Opšte) odabrati tip projekta koji želimo stvoriti, npr Simple Hello world program
3. u polju Ime Programa unijeti željeni naziv projekta (npr. MojPrviProjekt) i odabrati Sljedeći
4. Na daljnja pitanja odgovoriti sa Sljedeci i na kraju sa Završi.
Ukoliko je sve prošlo kako treba, u odabranom direktoriju su se stvorile sve datoteke potrebne tom projektu, te se kao nova kartica za uređivanje otvorila datoteka s odabranim nazivom projekta i nastavkom .c (npr. mojprviprojekt.c). Otvorena datoteka sadrži izvorni kod za jednostavnu Hello world aplikaciju.
Pored HelloWorld aplikacija, Kdevelop može da generiše početne aplikacije za razne vrste biblioteka. Neki od ovih primjera se mogu isprobati u standardnoj konfiguraciji BHLD (Hello world, WxWidgets, GTK), dok se za neke moraju instalirati dodatni paketi (QT - KDE).
Projekt se zatvara odabirom menija Projekat / Zatvori Projekat.
Uređivanje izvorne datoteke je ekvivalentno radu u bilo kojem jednostavnom uređivaču teksta poput KEdit-a pod Linuxom ili Notepad-a pod Windowsima. Ono što razlikuje ugrađeni uređivač teksta od ostalih jest osigurana podrška za kvalitetan pregled sintakse u izvornoj datoteci, koja omogućava jasan i jednostavan pregled strukture programa koji se piše, te jednostavno uočavanje i otklanjanje pogrešaka.
Ukoliko otvoreni projekt želimo pokrenuti, potrebno je prvo prevesti sve izvorne datoteke u njemu u mašinski jezik (kompajlirati). Prevođenje izvornog koda aplikacije, vrši se odabirom menija Gradnja→Izgradi projekat ili tasterom F8. Rezultat postupka prevođenja može se iščitati iz statusnog prozora Kdevelopa, koji se standardno nalazi na dnu glavnog prozora – poruka “success” označava uspješno prevođenje programa. Prilikom prvog prevođenja programa Kdevelop će postaviti pitanje “Pokrenuti automake i prijatelje?" na što je potrebno odabrati opciju Pokrenuti.
Ukoliko je prilikom prevođenja došlo do neke greške, jedne ili više njih, njihov opis će se također nalaziti u statusnom prozoru. Dvostrukim klikom na red u kojem je opisana vrsta greške, uređivač teksta će pozicionirati kursor u neposrednoj blizini upravo te greške. Jednom uspješno prevedena, aplikacija se pokreće odabirom menija Gradnja→Izvrši program, ili korištenjem kombinacije tastera Shift+F9. Ukoliko je izvorni kod bio izmijenjen nakon zadnjeg prevođenja, postupak prevođenja će se automatski izvesti pozivanjem akcije pokretanja programa.
13.24 UML modeliranje
UML je grafički način prikaza odnosa između klasa u objektno orijentisanim jezicima. Uz BHLD dolazi program Umbrello koji omogućava modeliranje koristeći UML standardnu notaciju. Sa ovim programom možete nacrtati odnose između klasa, pri čemu u pojedinim slučajevima oni se i automatski otkrivaju. Kako dodajete klase na radnu površinu dijagrama, one postaju potencijalni tipovi atributa.
Posebno korisna osobina je generisanje početnog koda za implementaciju ovako dizajniranih klasa u raznim programskim jezicima.
13.25 Lokalizacijski alati
Da li ste zadovoljni prijevodom aplikacija koje dolaze uz BHLD? Možda treba nešto popraviti ili čak prevesti neki cijeli novi program? Neki alati za prevođenje su već uključeni.
13.25.1 Lingvistički formati
Kako se prevodi pojedina aplikacija, zavisi od toga kako je napisana. Najviše aplikacija koristi format gettext, i one imaju svoje prijevode u direktoriju /usr/share/locale-langpack/bs/LC_MESSAGES
Uočite da su skoro sve datoteke u ovom direktoriju u formatu .mo. Datoteke u ovom formatu su generišu programom msgfmt iz formata .po, na primjer,
msgfmt krita.po -o krita.mo
Format datoteka .po je tekstualni format gdje su engleski tekstovi označeni ključnim riječju msgid, a prevedeni su označeni s msgstr.
Ove datoteke se inicijalno nalaze s izvornim kodom aplikacije, ali se mogu dobiti i iz .mo datoteka, programom msgunfmt
msgfmt krita.mo -o krita.po
Drugi stil lokalizacije imaju Firefox i Thunderbird. Njihove datoteke s tekstovima su u .jar datotekama koje se trebaju otpakovati, promijeniti i ponovo zapakovati.
Scribus i Qcad koriste qm format, čiji izvorni format je .ts. Oni se prevode programom localize za koji treba instalirati paket kdedevelop.
Najteže je prevesti OpenOffice. Proces zahtijeva prekompajliranje gotovo cijelog paketa.
13.25.2 KBabel
KBabel predstavlja skup programskih alata za editovanje i upravljanje PO datotekam. Uz njega dolazi PO editor koji čini prevođenje lakšim nego da je korišten obični tekstualni editor.
Pri prvom pokretanju KBabel paketa potrebno je identifikovati se. U tražena polja unesete vaše ime i prezime, vašu elektronsku adresu, ime jezika Bosnian i skraćenicu bs, elektronsku adresu grupe bs@li.org, vremensku zonu gde se nalazite npr. CEST, da bi se lakše mogla pratiti izmjena PO fajla. Ove informacije se kasnije koriste za ažuriranje PO zaglavlja. Bosanski jezik ima 3 oblika množine i kodni raspored za čuvanje datoteka je UTF-8.
U lijevom podprozoru pratite tekst na originalnom jeziku (npr. engleski), a ispod njega se nalazi prevedeni tekst (npr. Bosanski). Uz pomoć alatne trake možete se kretati na sljedeći neprevedeni ili nejasno prevedeni tekst. Tasterima Ctrl+Razmak možete prebaciti iz originalnog jezika u prevedeni.
