Movatterモバイル変換


[0]ホーム

URL:


Siirry sisältöön
Wikipedia
Haku

REXX

Wikipediasta
REXX
Yleinen suoritusmallitulkattava
Julkaistu1979
KehittäjäMike Cowlishaw
Merkittävimmät toteutuksetARexx,Regina REXX
VaikutteetALGOL
MurteetNetRexx,ooRexx
Infobox OK

REXX taiRexx (REstructured eXtended eXecutor) onMike Cowlishaw'n vuonna 1979IBM VM -ympäristöön kehittämäohjelmointikieli.[1]

Kieli on yleensä tulkattavaohjelmointikieli, joka suunniteltiin helpoksi käyttää ja oppia. Sitä käytetään sekäkomentosarjakielenä että erilaisten sovellustenmakrokielenä.

Kieli on perinteisestiproseduraalinen, mutta nykyään siitä on olemassa myösoliopohjainen versio nimeltäooRexx (ent.Open Object Rexx).[1]

REXXissä on tehokkaat työkalut tekstimuotoisen tiedon käsittelyyn. Kielenstem-käsite ja toiminta mahdollistaa moniulotteisen taulukoinnin, jossa indeksit ovat vapaasti asetettavia merkkijonoja.

REXX on saatavissa lähes kaikkiin käyttöjärjestelmiin sekä kaupallisena ettäavoimen lähdekoodinRegina REXX toteutuksena.

Esimerkkiohjelma

[muokkaa |muokkaa wikitekstiä]
/* ohjelma lukee ohjelmakoodia standard-inputista ja muodostaa ristiviitelistan */ref.=''sanat=''kwd='if then else do end to while iterate say call return parse var exit'/* ei mukaan listalle*/lno=0dowhilelines()>0/* luetaan koko tiedosto */rivi=linein()/* luetaan rivi */callliteral/* poistetaan riviltä merkkijonot */parsevarrivirivi'/*'./* poistetaan rivin lopusta kommentit */lno=lno+1rivi=translate(rivi,'          ','.,:=+-/<>*()')/* poistetaan erikoismerkit*/rivi=space(rivi)/* siistitään rivi */doi=1towords(rivi)/* käydään läpi rivin sanat */sana=word(rivi,i)/* otetaan sana */ifdatatype(left(sana,1))='NUM'theniterate/* numerot jätetään pois */ref.sana=ref.sanaright(lno,3)/* rivinumero talteen */ifwordpos(sana,kwdsanat)=0then/* onko sana uusi */sanat=sanatsana/* oli, laitetaan listalle */endenddoi=1towords(sanat)/* käydään läpi sanalista */sana=word(sanat,i)/* poimitaan sana */sayleft(sana,10)ref.sanaendexitliteral:apo=pos("'",rivi)/* löytyykö hipsukka */bpo=pos('"',rivi)/* löytyykö tupla-hipsukka */dowhileapo+bpo>0/* jos löytyy */ifapo*bpo>0then/* oli molemmat */pick=min(apo,bpo)/* niistä ensimmäinen */elsepick=max(apo,bpo)/* vain toinen oli */sea=substr(rivi,pick,1)/* tätä merkkiä haetaan */epo=pos(sea,rivi,pick+1)/* haetaan merkkijonon loppu*/rivi=left(rivi,pick-1)substr(rivi,epo+1)/* riville jää alku ja loput rivistä */apo=pos("'",rivi)/* onko toinenkin merkkijono */bpo=pos('"',rivi)endreturn

Esimerkin muuttujaref. on stem. Huomattakoon, että muuttujaankwd on asetettu vain ne avainsanat, joita tässä esimerkissä käytetään. Niitä on paljon muitakin. Lisäksi on oletettu, että kommentit ovat rivin lopussa eivätkä ne jatku toiselle riville. Samoin merkkijonojen on oletettu olevan yhdellä rivillä. REXX ei rajoita näitä, mutta hyvä koodaustyyli ei suosi niiden käyttöä.

Yllä olevan esimerkin toteuttaminenLinux-ympäristössä Regina REXX:llä, kun syötteenä on itse ohjelmakoodi:

>cat rexxsamp.rex | rexx rexxsamp.rex | sortapo          28  30  31  32  34  38bpo          29  30  31  32  34  39datatype     15epo          36  37i            13  14  21  22kwd           4  17left         15  23  37linein        7lines         6literal       8  27lno           5  10  10  16max          34min          32pick         32  34  35  36  37pos          28  29  36  38  39ref           2  16  16  23right        16rivi          7   9   9  11  11  12  12  13  14  28  29  35  36  37  37  37  38  39sanat         3  17  18  18  21  22sana         14  15  16  16  17  18  22  23  23sea          35  36space        12substr       35  37translate    11wordpos      17words        13  21word         14  22

Kirjallisuutta

[muokkaa |muokkaa wikitekstiä]
  • Hauru, Aarno: Johdatus REXX-kieleen. (Asiakaspalveluopas) Otaniemi: Teknillinen korkeakoulu, Laskentakeskus, 1988.

Aiheesta muualla

[muokkaa |muokkaa wikitekstiä]

Lähteet

[muokkaa |muokkaa wikitekstiä]
  1. abJack Woehr: Open ObjectRexx Dr Dobb's.
Tämätietotekniikkaan liittyvä artikkeli ontynkä. Voit auttaa Wikipediaalaajentamalla artikkelia.
Noudettu kohteesta ”https://fi.wikipedia.org/w/index.php?title=REXX&oldid=20518520
Luokat:
Piilotettu luokka:

[8]ページ先頭

©2009-2025 Movatter.jp