Ada_95_Skrypt_Wyd_II.pdf

(2710 KB) Pobierz
5078511 UNPDF
Wst¦pdoprogramowaniawj¦zykuAda’95
MichałMorawski AntoniM.Zaj¡czkowski
Wydaniedrugie
Łód¹,2004
Poprzedniawesjaniniejszegoskryptuzostaławydanaw1999r.nakłademWydziału
FTIMSPolitechnikiŁódzkiejze±rodkówprogramu„Tempus”
Przedmowa
tówwydziałówtechnicznychwy»szychuczelnitechnicznychjestumie-
j¦tno±¢projektowaniaipisaniaprogramówkomputerowychwj¦zyku
wysokiegopoziomu.DotyczytoszczególnieabsolwentówkierunkuInformatyka
ikierunkówpokrewnych,takichjakElektronikalubElektrotechnika.Podob-
niejestnaWydzialeFizykiTechnicznej,InformatykiiMatematykiStosowanej
(FTIMS)PolitechnikiŁódzkiej.Wpoprzednichlatachuznano,»estudencimagi-
sterskichstudiówdziennychkierunkuInformatykategowydziałupowinnizdo-
by¢umiej¦tno±¢pisaniaprogramówkomputerowychwkilkuj¦zykachprogra-
mowaniawysokiegopoziomu.Ustalonote»,»ejednymztychj¦zykówjestj¦zyk
C/C++,natomiastdrugimj¦zykiem,nauczanymwramachprzedmiotu Wprowa-
dzeniedou»ytkowaniakomputerów (WDUK)byłj¦zykPascal,któryuznano
zaodpowiednij¦zykwpocz¡tkowymkursieprogramowaniajakirealizowany
jestwramachwspomnianegoprzedmiotu.
Wlatach1998-2000naWydzialeFTIMSdokonanoreformyprogramustudiów
dziennychwszystkichkierunkówstudiów,wtymkierunkuInformatyka.Wwy-
nikutychdziała«,finansowanychwdu»ymstopniuprzezUni¦Europejsk¡(UE)
wramachprogramuTempus,opracowanonoweprogramystudiów,których
realizacjarozpocz¦łasi¦wsemestrzezimowymrokuakademickiego2000/2001.
Noweprogramydaj¡mo»liwo±¢uzyskaniastopniain»yniera,albolicencjataw
przypadkukierunkuMatematyka,lubstopniamagistrain»yniera,alboodpo-
wiedniomagistra.Studiain»ynierskietrwaj¡siedemsemestrów,astudiamagi-
sterskiedziesi¦¢semestrów,przyczympierwszeczterysemestrys¡wspólne.
Studentucz¡cysi¦wgnowychprogramówzaliczaj¡cprzedmiotuzyskujeoprócz
zwykłejoceny,pewn¡liczb¦punktówkredytowychprzypisan¡przedmiotowi.
Wprowadzonywnowychprogramachsystempunktówkredytowychmaumo»-
liwi¢m.in.wymian¦studentówzuczelniamikrajówUE.
Pracenadnowymiprogramaminauczaniabyłydobr¡okazj¡domodernizacji
tre±ciprzedmiotówrealizowanychnakierunkuInformatyka,awtymprzedmio-
tówdotycz¡cychnaukiprogramowania.
Niniejszyskryptjestwynikiemcz¦±citychdziała«imasłu»y¢jakopomocdy-
daktycznastudentomorazwykładowcomrealizuj¡cymprzedmioty Wprowa-
dzeniedoinformatyki (WDI), Podstawyinformatyki (PI)i Systemyczasu
3
O becnie,jednymzpodstawowychelementówwykształceniaabsolwen-
rzeczywistego (SCR).Pierwszedwaprzedmiotyrealizowanes¡podczaspierw-
szegorokustudiów,odpowiednionakierunkuInformatykaorazkierunkach
FizykaTechnicznaiMatematyka,acelemichjestm.in.nauczeniestudentów
podstawprogramowaniakomputerów.Ostatni,wymienionyprzedmiotprzewi-
dzianodlastudentówczwartegorokustudiówmagisterskichkierunkuInfor-
matyka,awi¦cdlastudentówbardziejzaawansowanych.Podczasdyskusjinad
tre±ciamiprogramowymizreformowanegoprogramunauczaniauznano,»ej¦-
zykPascalniespełniawpełniwspółczesnychwymaga«jakiepowinienspełnia¢
j¦zykprogramowaniawysokiegopoziomustosowanydonauczaniaprogramo-
waniawpocz¡tkowejfaziestudiów.Uznanote»,»ej¦zykC/C++nienadajesi¦
donauczaniapocz¡tkowegoiwzwi¡zkuztympowstałproblemwyboruwła-
±ciwegoj¦zyka,przyczymzało»ono,»enajlepszymj¦zykiemb¦dzieten,który
opartyjestoczyteln¡składni¦Pascalaijednocze±nieumo»liwiapisanieprogra-
mówwykonywanychwczasierzeczywistym.Wybórnaszpadłnaj¦zykAda,
adokładniejnaAd¦95.Decyzj¦t¦trzebakrótkouzasadni¢.SkładniaAdyjest
wnaszymprzekonaniubardziejczytelnaodskładniPascala,apewne,znane
wadytegoj¦zykazostaływAdzieusuni¦te.Trzebaprzytymwspomnie¢,»e
składniaAdyopartajestoskładni¦Pascala,comadu»eznaczeniedlastu-
dentówpierwszegoroku,którzy,jakzakładamy,poznalit¦składni¦ucz¡csi¦
informatykiwszkolepodstawoweji±redniej.Panujedo±¢powszechnieprzeko-
nanie,»ej¦zykPascaljestj¦zykiem,którynajlepiejnadajesi¦dopocz¡tkowej
naukiprogramowaniawgzasadprogramowaniastrukturalnego(Wirth1978)i
celemtwórcytegoj¦zyka,profesoraNiklausaWirthazPolitechnikiwZ¨urichu
byłozaprojektowanietakiegoj¦zyka.OdopublikowaniadefinicjiPascalawroku
1970obserwowali±myszybkirozwójinformatyki,awtymj¦zykówiin»ynierii
oprogramowania.Jedn¡zmetod,którawywarładoniosływpływnain»ynieri¦
oprogramowaniainacał¡informatyk¦jestmetodaprogramowaniaobiektowego
(CoadiNicola1993,MartiniOdell1997),którejideezostałyzastosowane
przyprojektowaniuj¦zykaC++.J¦zykPascalwwersjiwzorcowejniezawiera
konstrukcjiumo»liwiaj¡cychstosowaniemetodobiektowych,aleumo»liwiaj¡to
pó¹niejszewersjej¦zykaTurboPascalopracowaneprzezfirm¦Borlandoraz
jejjeszczenowszysystemprogramowaniaDelphi.Zpunktuwidzenianauczania
programowaniapodstawowymiwadamiTurboPascala,czyDelphis¡,naszym
zdaniem,brakmechanizmówprogramowaniasystemówczasurzeczywistego
orazbrakmi¦dzynarodowegostandardu,cojestzrozumiałe,bos¡toprodukty
komercyjne.Ada95jestj¦zykiem,którymatemechanizmyijestpierwszymj¦-
zykiemobiektowymdlaktóregoopracowanoiprzyj¦tonorm¦mi¦dzynarodow¡
(Barnes1998)oraz,cojestwa»nymargumentemnarzeczAdy,u»ywanyjestdo
naukiprogramowania(Smith1996).PrzywyborzeAdykierowali±mysi¦rów-
nie»tym,»eistniej¡edukacyjnewersjekompilatorówAdy95dost¦pnebezpłat-
niewodpowiednichwitrynach±wiatowejsiecikomputerowej,lubdoł¡czane
doniektórychpodr¦cznikówAdy(Barnes1998).Dost¦pno±¢tychkompilato-
rów,którepowinnyspełnia¢wymaganianormyj¦zyka,madu»eznaczenieprzy
wyborzeoprogramowaniaprzeznaczonegodocelówedukacyjnychwsytuacji,
gdybud»etyuczelnipa«stwowychs¡takskromnejakobecnie.Cenn¡pomoc¡
przypodejmowaniudecyzjiokazałsi¦artykułCoolinga(Cooling1996)natemat
j¦zykówprogramowaniasystemówczasurzeczywistego,wktórymomówiono
podstawowewymaganiajakietej¦zykimusz¡spełnia¢oraznatejpodstawie
dokonanoanalizyporównawczejwspółcze±niestosowanychj¦zykówtegoro-
dzaju.Ztegoartykułuwynika,»ewdziedziniesystemówczasurzeczywistego
4
dominuj¡cymij¦zykamis¡obecnieipozostan¡zapewneprzezkilkanast¦pnych
latdwaj¦zykiC++iAda95,przyczymwszczególnieodpowiedzialnychzasto-
sowaniachtakichjaknp.systemykontrolilotu,Ada95jestzdecydowanielepsza
odC++.Pozatym,jakpodaj¡(Huzar,Fry¹lewicz,Dubielewicz,Hnatkowska
iWaniczek1998)niektórefirmy»¡daj¡o20-30%mniejszejcenyzaopracowanie
oprogramowania,je»eliklientzgodzisi¦narealizacj¦projektuwAdzie.Intere-
sowali±mysi¦równie»tym,czyAdauczonajestwinnychuczelniach,wtym
uczelniachpartnerskich,uczestnicz¡cychwnaszymprogramieTempus.Mił¡
niespodziank¡byłoto,»epodczasnaszychwizytwPolitechnicewMadrycie
(AntoniM.Zaj¡czkowski)inaUniwersyteciewLeeds(MichałMorawski),oka-
załosi¦,»erównie»tamAdazostałaprzyj¦tajakoj¦zykprogramowania,którego
nale»yuczy¢studentówinformatykiikursytegoj¦zykazacz¦totamrealizowa¢.
KoledzyzPolitechnikiwMadryciepotwierdzilite»,»ewwieluuniwersytetach
ameryka«skichuczysi¦Adynapierwszympoziomiestudiów(undergraduate).
WPolsceAdaniejestj¦zykiemnieznanymiwiemy,»estudenciWydziałuMate-
matykiUniwersytetuŁódzkiegoiPolitechnikiWrocławskiejprzechodz¡kursy
tegoj¦zyka.
Ostatecznie,czynaszwybórbyłsłusznypoka»eprzyszło±¢iwynikinaucza-
nia,naktóreniew¡tpliwiewpływb¦dziemiałsposóbrealizacjiprocesudy-
daktycznego.Uwa»amy,»eprocestenb¦dziełatwiejszywrealizacji,je»elinasi
studenciorazwykładowcyb¦d¡mielidodyspozycjiodpowiednipodr¦cznik.
Napolskimrynkuwydawniczymjestmałopodr¦cznikównatematprogra-
mowaniawAdzie95.Wcze±niejszawersjategoj¦zyka,znanajakoAda83,
byłaopisanawdwóchksi¡»kach:Pyle’a(Pyle1986)iHabermannaiPerry’ego
(HabermanniPerry1989),przyczymtapierwszanadajesi¦dobrzejako
podr¦cznikdowst¦pnegokursuprogramowania,natomiasttadrugaprzezna-
czonajestdlazaawansowanegoczytelnika,znaj¡cegodobrzej¦zykPascal.Na
tematAdy95znamyjedynieksi¡»k¦opracowan¡przezzespółpracownikówPo-
litechnikiWrocławskiejkierowanyprzezprofesoraHuzara(Huzariinni1998).
Ksi¡»kataopisujeAd¦95wsposóbkompletny,alenaszymzdaniemjestza
trudnadlastudentówpierwszegoroku,natomiastmo»estanowi¢cenne¹ródło
dlazaawansowanych.
Innapolskaksi¡»kadotycz¡caAdy(MottetiSzmuc2002)jestukierunkowana
nakonstrukcj¦systemówczasurzeczywistegoirównie»,zcał¡pewno±ci¡nie
jestodpowiedniajakopodr¦cznikkursupodstawowegopierwszegoj¦zykapro-
gramowania.
Pisz¡cniniejszyskryptpostawili±mysobieskromniejszeiniecoinneceleni»
członkowiezespołuprofesoraHuzara.Naszymcelembyłonapisaniepodr¦cz-
nika,którycho¢wcz¦±ci,zaspokoipotrzebyzwi¡zaneznauczaniemprzed-
miotów Wprowadzeniedoinformatyki , Podstawyinformatyki i Systemy
czasurzeczywistego realizowanewnowymprogramiestudiówdziennychna
WydzialeFTIMSPŁ.Potrzebyteorazprzyj¦teograniczenieobj¦to±ciskryptu,
wywarływpływnajegotre±¢.Skryptnaszmo»napodzieli¢nadwiecz¦±ci:
pierwszacz¦±¢,napisanaprzezAntoniegoZaj¡czkowskiego,obejmujerozdziały
1—9izawieramateriałprzewidzianydoomówieniawramachprzedmiotu
Wprowadzeniedoinformatyki ,natomiastcz¦±¢druga,opracowanaprzezMi-
chałaMorawskiego,obejmujerozdziały10—14iprzeznaczonajestjakopomoc
dlastudentówbardziejzaawansowanych,aprzedewszystkimdlatych,którzy
przechodz¡kurs Systemyczasurzeczywistego .Wartotuzaznaczy¢,»eAda95
5
Zgłoś jeśli naruszono regulamin