Java-põhine keskkond õpetamiseks programmeerimiskeel mõisted*

Link: http://lsirpeople.epfl.ch/hauswirth/papers/Simplesem/

Manfred Hauswirth, Mehdi Jazayeri ja Alexander Winzer
Distributed Systems Group
Tehnilised Viini Ülikool
Argentinierstraße 8/184-1, A-1040 Wien, Austria
{M. Hauswirth,M. Jazayeri,A. Winzer}@infosys.tuwien.ac.kell
http://www.infosys.tuwien.ac.at/

Kokkuvõte – Me kirjeldada SDE visuaalse keskkonna uuring semantika programmeerimiskeelte. SDE toetab abstraktne masin nimega SIMPLESEM, mida kasutatakse, et määrata, operatsiooniline semantika programmeerimiskeelte on laialdaselt kasutatud õpiku kohta programmeerimiskeeled. Poolt, lähtudes keskkonna-World-wide Web infrastruktuur, keskkond on kohe saadaval, et õpilased ja õpetajad üle kogu maailma. SDE suurendab õpilase õppe simuleerimise ja visualiseerimise abstraktsete mõistete semantika. Selline visualiseerimine keskkondades on hindamatu uuringu kokkuvõte teemadel. SDE on praegu kasutusel mitu ülikooli kursusi erinevates riikides. Me kirjeldada keskkonna ülesehituse ja võimeid ning läbi mõned meie kogemusi, et arendada keskkonna.
Sissejuhatus
Kursused mõistete ja põhimõtete programmeerimise keeli on standard osa ülikooli arvutiteaduse õppekavad. Erinevalt kursused programmeerimine eelkõige keeli, need kursused rõhutada sarnasusi ja erinevusi palju erinevaid programmeerimise keeli. Need kursused leiavad, süntaks ja semantika komponente programmeerimise keeles. Uuring süntaks tegeleb staatiline aspektid programmeerimiskeeled, mille märgetega, mis põhineb Backus-Naur Form (BNF) on tõestanud piisavalt ja on muutunud standard tööriistade uurimuses. Uuring semantika, siiski, on mitmeid lähenemisi ja puudub üksmeel, et parim viis. Praegused lähenemisviisid semantiline kirjeldus võib liigitada enesestmõistetav, denotational, ja operatiivne.

Operatiivne lähenemine määratleb semantika programmeerimiskeel, viidates, et programmi täitmise kohta abstraktne masin. Eriti, semantika keele ehitada on määratletud, andes selle tõlke osas juhiseid abstraktne masin. Seega, selleks, et täielikult mõista, semantika programmeerimiskeel, õpilane peab õppima juhiseid abstraktne masin, kuidas tõlkida programme programmeerimise keelest programme abstraktne masin, ja kuidas abstraktne masin täidab oma programmid. Tavalise kursused, need on tehtud pliiats ja paber. Õppinud semantika keele, õpilane peaks suutma tõlkida keel ehitada sisse juhiseid abstraktne masin. Antud selline tõlge, kuidas õpilane teadma, et tõlge on õige? Ükskõik kui lihtne abstraktne masin on, jälitamise täitmise konstruktsioone, näiteks rekursiivne korras kõned on tüütu ja vigu, sest õpilane on käsitsi sammult läbi selle koodi jälgida kõiki andmeid, instruction pointer, stack, ja hunnik.

It keskkond, mis toetab programmi väljatöötamine, teostamine ja visualiseerimise jaoks abstraktne masin vabastab õpilane tegelda siis tedium masin täitmise ja selle asemel, et keskenduda semantika keele konstruktsioone. Visuaalne täitmise programm toob elu semantika keele konstruktsioone. Vetter [7] väidab `spetsiaalseid tööriistu”, et parandada kursuse arusaamine. SIMPLESEM Arengu Keskkond (SDE) on selline vahend spetsialiseerunud programmeerimise keel, mõisted. SIMPLESEM on semantiline abstraktne masin sisse ja kasutatud raamat Programmeerimise Keel Mõisted [4]. SDE on graafiline Java-põhine keskkond, mis võimaldab üliõpilasel muuta, käivitada ja debug SIMPLESEM programmid. SDE animates SIMPLESEM hukkamise poolt visualiseerimise kood ja andmed mälestusi SIMPLESEM protsessor. Kasutajad on interaktiivne üle kontrolli mälu sisu ja koolituskava igal ajal. Nii koodi ja andmete murdepunktid on toetatud. Need vahendid võimaldavad kerge silumine ja tunnustust programmi kontrolli ja andmete voolust. See toob kaasa parema arusaamise programm on dünaamiline käitumine [6]. Kasutada uut tehnoloogiat, et parandada õpetamise ja õppimise on praegu aktiivne ala arutelu. Erinumber Side ACM [1] on pühendatud uue haridusasutuste kasutab arvutite campus keskkond. Virtuaalne ümarlaud [3] käsitletakse paljusid huvitavaid teemasid ja mõju uue IT-hariduse infrastruktuuri. Krämer [5] kirjeldatakse üldisi küsimusi, kaugõpe, paradigma nihe klassiruumis õpetamise interaktiivse kaughooldus, ja konkreetse on-line muidugi jaotatud tarkvara insener.

SDE on kaasaskantav üle paljude platvormide ja seda saab kasutada kas läbi World-wide Web Java-toega brauser (applet versioon) või iseseisvalt. Et tagada identne funktsiooni mõlemad versioonid, hoolimata asjaolust, et Java appletid ja taotlused on erinevad turvanõuded, apleti versioon emuleerib funktsioone, mis on lubatud ainult rakendusi, nt apleti versioon sisaldab simple file server ladustamiseks ja laadimiseks kood. SDE on üks programm allikas mõlemad versioonid. SDE on kättesaadav üle WWW ja ei vaja installi protseduur klientarvutites. Ainus nõue selle kasutamine on Java-toega WWW-brauser.

Raamat on üles ehitatud järgmiselt. Kõigepealt kirjeldame semantilise abstraktse protsessor SIMPLESEM, mis järgneb ülevaade SDE ja selle funktsioonid. Siis saame arutada mõju SDE õpetamise keele semantika. Viimane osa võtab kokku peamised punktid tehtud, esitatakse mõned õppetunnid, ning järeldab, paber.
SIMPLESEM Mõisted
SIMPLESEM on abstraktne semantilise protsessor toetada toimiv lähenemine semantika programmeerimiskeelte. See võimaldab paremini mõista mõnda konkreetset programmeerimiskeelt on mõistete kaardistamine neid peale järjestused SIMPLESEM juhiseid, et siis saab `täidetud.”

SIMPLESEM koosneb instruction pointer, mis on mälu, mis on jagatud kaheks eraldi jaos–koodi ja andmete mälu-ja protsessori. Kood mälu (C) omab kood, mis tuleb täita ja andmete mälu (D) omab andmeid, mille kood manipuleerib. Nii C ja D aadressid algavad 0 (null) ja mõlemad programmid ja andmed on eeldada, et see on salvestatud alates käesoleva aadress. Instruction pointer (ip) on kasutatud punktis järgmine käsk C täita. See on lähtestatud 0 ja automaatselt suurendatakse, kui korraldus on täidetud. Iga juhendamine toimub ühes kohas C. Täitmine peatub, kui eriline juhendamine peatada on tekkinud.

Märgetega C[X] D[X] kasutatakse, et tähistavad väärtused salvestatud Xth asukoht, C-ja D-ni. Muutmist salvestatud väärtus asukoht on läbi juhendamise eesmärgiks on seatud, allikas, kus eesmärgiks on aadress, asukoht, mille sisu on määrata, ja allikas on väljend hinnata uue väärtuse. Näiteks seada 10 -, D[20] kauplustes väärtus 20 asukoht arvesse asukoht 10.

Sisend/väljund SIMPLESEM on saavutatud kasutades set juhendamine ja osutades erilist registrite lugeda (sisend) ja kirjutada (väljund). Näiteks seada 15, lugeda oleks lugeda väärtus sisend seadme kohta ja salvestada selle asukoha 15 ja seadistada kirjutada, D[50] oleks prindi 50 asukoht sisu kohta väljundseade.

Väärtusi saab ühendada väljendid liberaalne ja loomulikul viisil; näiteks määrata, 99, D[15]+D[33]*D[41] oleks vastuvõetav juhiseid, et muuta sisu asukohta 99.

Muuta järjestikust kontrolli voolu, SIMPLESEM on hüpata ja jumpt juhiseid. Endine on tingimusteta hüpata teatud juhendamine, nt hüpata 47 teeb korralduse C[47] järgmise juhise täitmist. Viimane on tingimuslik hüpata, mis tekib siis, kui avaldise väärtuseks true. Näiteks jumpt 47, D[3] > D[8] täitmist jätkab kell asukoht 47), kui väärtus asukohas 3 on suurem kui väärtus lahtris 8 asukoht muul viisil täitmist jätkab järgmine juhis.

SIMPLESEM võimaldab kaudne adresseerimine. Näiteks seadistada D[10], D[20] annab väärtuse hoida temperatuuril 20 asukoht lahtri, kelle aadress on salvestatud väärtuse juures, asukoht 10. Seega, kui väärtus on 30 hoida temperatuuril asukoht 10, juhiseid, mis muudab sisu asukohta 30. Indirection on ka võimalik hüppeid. Näiteks hüpata D[13] hüppab juhendamine hoida temperatuuril asukoha 88 C, kui 88 on salvestatud väärtuse kell 13 asukoht.

Nagu näha SIMPLESEM on kirjeldus nii kaugele, see on lihtne masin ja seda on lihtne mõista, kuidas see toimib ja millist mõju täitmise juhised on. Teisisõnu, me ei saa eeldada, et selle semantika on intuitiivselt teada üliõpilastele põhilised arvuti hariduse. Semantika programmeerimiskeelte seega võib kirjeldatud eeskirjad, et määrata kindlaks, kuidas iga ehitada keelest on tõlgitud jada samaväärse SIMPLESEM juhiseid. Kuna SIMPLESEM juhised on juba teada, semantika äsja määratletud ehitab ka teada.

Kõik skeemid ja kontseptsioonid tänapäeva programmeerimiskeeltes, näiteks kaart, rutiin, rekursioon, korstna ja hunnik mälu, blokeerida struktuuri, protsessi parameetrite mööduv semantika, saab kaardistada peale SIMPLESEM juhiseid, mida on kirjeldatud eespool. Neid teisendusi, aga, ei kuulu käesolev raamat. Huvitatud lugeja on osutatud [4] üksikasjalik kirjeldus.

Joonis 1 annab lihtsa ja intuitiivse näiteks kaardistamine programmeerimiskeel mõistete peale SIMPLESEM juhiseid.

A mapping to SIMPLESEM

Programm vasakul, mis on antud C -, nagu keel, arvutab suurim ühistegur kahe täisarvu numbrite abil lihtne aasa. Kood paremal näitab sama programmi poolest SIMPLESEM juhiseid.
SIMPLESEM Arendamise Keskkond
Õpilased õpivad sammult läbi seadustikus alguses õpinguid. Ilma tarkvara toetada, astusin läbi-kood on tüütu ja vigu ülesanne. Kui SIMPLESEM Arengu Keskkond (SDE) on graafiline, Java-põhine keskkond, mis toetab arengut ja visualiseerimine SIMPLESEM programmid. Valisime Java [2] rakendamiseks tegema SDE Interneti kaudu kättesaadav kui applet. Java hõlbustab teisaldamist kogu lai valik platvormid. Seega saab kohe kasutada ja run `off-the-shelf.”

On applet on tükk Java koodi, mis on alla laadida WWW serveri ja täidetakse kliendi arvutis (vt Joonis 2). WWW brauseri allalaadimise pakub apleti, teostatav runtime environment ja hoolitseb turvalisuse probleemid, jne.

Downloading and executing an applet

Joonis 2: Allalaadimine ja täidesaatva on apleti

Kasutades seda seadet on mitmeid eeliseid: ole selgesõnaliselt paigaldamine on vajalik kliendi arvutis, vaid Java-toega brauser on vaja, kus on saadaval enamik arvuteid on niikuinii; SDE on üle maailma Interneti kaudu kättesaadav; kasutajad ei pea säilitama tarkvara, sest nad on alati lae alla uusim versioon.

Lisaks SDE saab ka alla laadida ja käivitada, kui kohaliku applet või iseseisvalt. See on huvitav kasutamiseks arvutite puhul, millel pole Interneti-ühendust või kui ainult aeglane ühendus on saadaval. Kasutades SDE kohaliku applet on vaja Java-parem brauser. Rakenduse versioon Java Virtual Machine (TÖÖTAB), st Java runtime environment on vajalik.

Joonis 3 näitab, et ülemaailmne arhitektuur SDE.

Global architecture

 

Apletid on ainult piiratud juurdepääsu kliendi arvutisse, nt faili juurdepääsu ei ole võimalik. Pakkuda ladustamine ja laadimine SIMPLESEM failid apleti versioon, me ellu faili server, mis töötab vastuvõtva kellel on SDE applet. Kasutajad apleti versiooni saab laadida ja salvestada serverisse. Rakenduse versioon kasutab failisüsteemi otse. Vaatamata veidi erinevaid võimeid, mis on tingitud turvalisuse piirangud, mõlemad versioonid on kantud ühest allikast. Funktsioonid muutuvad kättesaadavaks või on keelatud sõltub, kas SDE täidab, kui applet või kui taotluse. Konfiguratsiooni, ei ole siiski vajalik.

SDE koosneb lihtne joon orienteeritud toimetaja, SIMPLESEM tõlgi ja graafiline debugger.

SDE screenshot

Joonis 4: SDE screenshot

Joonis 4 näitab, proovi SDE istungil. Toimetaja/kood komponendi näitab SIMPLESEM programmi koodi koodi mällu C (siin programmis toodud Joonisel 1). Järgmise juhise kohta tuleb täita, on instruction rida 6. See on märgitud muuta tausta värvi see liin. Milleni on seatud rida 7, kus on toodud murdepunkti akna vasakul. Lisaks liini number osa real 7 kood aken näitab murdepunkti poolt, millel erineva tausta värv. Andmete murdepunkti on seatud asukoht 1. Eri tausta värv asukoht 1 reale number andmete aken näitab, et murdepunkti sai alguse praeguses seisus täitmise. See tähendab, et automaatne täitmine oli peatatud ja SDE ootab kasutaja sisend. Kasutaja nüüd saate vaadata täitmine riigi, muuta andmete väärtused, ja muuda programm, muuta murdepunktid, jätka täitmist, jne. Need funktsioonid on kättesaadavad läbi erinevate windows koos nuppe allosas peamine aknas. SDE pakub järgmisi funktsioone:

Toimetamine. SDE programmid võivad olla trükitud otse redaktori akna. Toimetaja on line orienteeritud ja pakub basic editor funktsioone, näiteks lõigata ja kleepida, rea kustutamine ja sisestamise jne.

Murdepunktid. Murdepunktid saab lisada programmi peatada automaatne täitmine kindlaksmääratud punkti.

Täitmise kontrolli. Standard käitumine on, et programmid, mis käivitatakse automaatselt, kuni kasutaja sisend on vaja (loe register on kättesaadav), täitmise tabab murdepunkti, või kasutaja tabab kontrolli nuppu (paus, stopp, restart). Sellisel juhul, et kasutaja saab võtta täiendavaid meetmeid, nt anda sisend, set/kustuta murdepunktid, jätka täitmist, single-step juhendi kaudu, jne.

Andmed murdepunktid. Andmed murdepunktid on määratud D mälu kohad. Kui korraldust üritab muuta asukohta, andmete murdepunkti, täitmine on peatatud.

Laadimine ja ladustamine faile. SIMPLESEM koodi saab salvestada ja laadida faile. Juhul, kui taotluse versioon seda tehakse kohaliku failisüsteemi. Apleti versioon ei ole lubatud kasutada failisüsteemi. Nii laadimiseks ja salvestamiseks on tehtud kaudu remote file server, mis töötab applet on server. See server on osa SDE.

Üksikasjalik SDE kasutusjuhend on hõlmatud [8]. Ringi läbi arutelu, Joonis 5 näitab sise-arhitektuuri SDE.

SDE's internal architecture

 

Kontrolli komponent annab kasutaja liidese suhtlemine kasutaja ja muud komponendid. Lisaks, see on tasuta teatise osade vahel. Kood komponendi rakendab lähtekoodi redaktorit. Kaks murdepunkti komponendid salvestada ja kuvada murdepunktid. Nad pakuvad spetsialiseeritud liides tõlk toetada kiire murdepunkti kontroll.

Tõlgi osa (Joonis 6) saab rida koodi koodi osa ja söödab neid oma leksikaalse analyzer. Leksikaalse analyzer murrab sisestatud märgid, mis on sisendiks parser. Parser ühendab mitmed märgid arvesse SIMPLESEM juhendamise ja kontrolli oma syntactical õigsust. Tõlgi siis täidab juhiseid. Vaja andmete väärtused on otsitud andmebaasist ja saata andmed komponent.

Interpreter interaction

 

Joonis 6. Tõlk koostoimed

Lubada kasutajal katkestada või peatada täitmise, nagu eespool kirjeldatud, tõlk rakendatakse nagu Java lõng. Kui kasutaja alustab SIMPLESEM programm, tõlk lõng on loodud. Ta teeb koostööd leksikaalse analyzer ja parser, mis on niidid ise. Katkestamine ja peatamine taotlused on tehtud peatatakse asjaomaste niidid. Hiljem on need niidid, võib hävitada või taasalustatakse, nt juhul jätkata või üheastmelise toimingud. See multi-keermestatud arhitektuur tagab väga interaktiivne tunnetust. Üksikasjalik kirjeldus SDE rakendamise kohta on antud [8].
Kasutades SDE õpetamiseks
Abstraktsete mõistete, on alati raske õpetada algajatele teema. Näiteks alguses õpilastele alati on raskusi mõiste rekursioon: `kuidas on võimalik, et kõne kord, et teil on määravad?” küsitakse. Mida visualiseerimise täitmise rekursiivsed protseduurid, saab õpilane on selgelt näha, kuidas rekursioon hakkab, kuidas see tulu, ja kuidas ta lõpuks lõpetab. Saab õpilane vaata maksumus mehhanismi ja saab võrrelda seda visuaalselt samaväärse rakendusi, mis põhinevad iteratsiooni. Visuaalne mõju on kohene. Siluda a nonterminating rekursiivne korras, jälgides seda, paberil on suurusjärgu võrra keerulisem, kui töötab see tõlk. Tõepoolest, esialgses demo programm koormatud SDE on rekursiivne factorial programmi. See on hea näide sellest, kuidas lihtne programm annab alust keeruline, dünaamiline käitumine. Saada üks juhis vale võib viia lõpmatu rekursioon. Muutes valikuline juhiseid programmi õpetaja saab näidata ühise vigu ja nende–mõnikord dramaatiline–tagajärjed.

Põhiidee SDE on visualiseerida abstraktsete mõistete, millel puudub füüsiline kolleegidega. Kõige valdkondades computer science tegeleda samamoodi abstraktsete mõistete ja saavad sarnast toetab tarkvara tööriistu.
Kokkuvõte
Meil on kirjeldatud SIMPLESEM Arengu Keskkonna uuring semantika programmeerimiskeelte. SDE kasutatakse meie ülikoolis on meie programmeerimiskeel Mõistete muidugi. See on esimene kord, et loomulikult on õpetatud sellist toetust.

Huvitav on see, et kuigi SDE on just välja töötatud ja ei ole isegi veel teatas ametlikult, see on juba `avastatud” mitmed õpetajad üle maailma (vähemalt kolmel kontinendil!) ja kasutatakse, et toetada nende õpetamist. Traditsiooniliselt, instruktorid sarnane kursustel jagada oma kogemusi ja on toetanud ka õpiku autorid. Materjal jagada on tavaliselt staatiline iseloom: mudel koolituskavad, koopiad, lüümikud jne. Tarkvara tööriist nagu SDE võimaldab uusi võimalusi jagada. Eriti, mis on spetsiaalselt huvitav SIMPLESEM programmid (nagu meie factorial demo programm), et näidata konkreetseid küsimusi, nagu rekursioon või protseduuri parameetrid võivad esitada WWW.

SDE võimaldab ka uut tüüpi koduseid ülesandeid, mida ei olnud võimalik enne, sest tedium käitlemise midagi, kuid väga väike SIMPLESEM programmid. Lisaks koduseid ülesandeid võib toimuda apletid, mis juhivad õpilased ja esitatud automaatselt, kui õpetaja kohas. Ülesandeid saab hinnata automaatselt ja õpilasele teatavaks viivitamata. Sellised mehhanismid võimaldavad ühe õpetaja, et toetatakse suuremat arvu õpilasi kui on tavaliselt võimalik.

SDE rakendati Java ja peamiselt mõeldud kasutamiseks brauseritega üle WWW. Java ja WWW/browser infrastruktuuri olid valitud, et anda üldlevinud juurdepääsu ja kohese kättesaadavuse uued versioonid. Lisaks on see seade oli mõeldud tasuta kasutajate paigaldus-ja hooldustööd. Kuna Java toetab teisaldamist, me eeldada, me võiks täita neid eesmärke kergemini. See osutus liialt optimistlik. Seal oli kaks peamist põhjust, et pikendada projekti kestust märkimisväärselt: uue Java versiooni ja Java keskkonda brauserid. Rakendamise ajal Java muutunud versioon 1.0.2 1.1.x. See võeti kasutusele mõned vastuolud, nt iganenud liidesed, mis põhjustas ümbertegemine, SDE. Brauserid ja platvormide nad töötavad on veidi erinevad keskkonnad, eriti seoses GUI programmeerimine. Need erinevused olid piisavalt suured, et lülita Java `write once, run kõikjal” lähenemine `kirjutada üks kord, test kõikjal” üks ja lasi edasilükkumise tõttu ühilduvuse ja stabiilsuse testid. Need probleemid on meiega, kuni Java stabiliseerub. Siiski, me ei tea ühtegi teist lähenemist, mis pakuvad sarnaseid hüvesid. SDE on saadaval üle Maailma-wide Web (http://www.infosys.tuwien.ac.at/pl-book/simplesem/).
Viited

1
ACM, `erinumber campus-wide computing,” Side ACM, Vol. 41, Nr 1, Jaanuar 1998.
2
Arnold, K., Gosling J., `Java programmeerimise keel,” Addison-Wesley, Lugemine, Massi. ja London, 1996.
3
El-Rewini, H., Mulder, M. C., Freeman, P. A., Stokes, G. E., Tarretis, I., Cassel, L., Lidtke, D. K., Russo, S., Krämer, B. J., Haines, J. E., Turner, J., `pidada sammu infoühiskonna,” IEEE Arvuti, Vol. 30, Nr 11, November 1997, lk 46-57.
4
Ghezzi, C., Jazayeri, M., `Programmeerimine Keeles Mõistete,” 3rd edition, John Wiley, New York, 1997.
5
Krämer, B. J. Wegner, L., `kohandatud teksti raamatuid interaktiivne kaugõpe,” ED-MEDIA/ED-TELECOM 98, Prentice-Hall, Englewood Cliffs, NJ, 1998.
6
Lee, E. A., Messerschmitt, D. G. `Inseneri hariduse tuleviku jaoks,” IEEE Arvuti, Vol. 31, Nr 1, jaanuar 1998, lk 77-85.
7
Vetter, R. J., `Web-based haridus, kogemused,” IEEE Arvuti, Vol. 30, Nr 11, November 1997, lk 139-141.
8
Winzer, A., `SIMPLESEM tõlk Java” tehniline aruanne magistritöö (koht), Distributed Systems Group, Tehniline Viini Ülikool, Austria, 1998.
Kinnitus
Seda tööd toetas osaliselt toetust Hewlett-Packard Euroopa Internet Algatusel.