logi sisse meist KKK

Ma saan aru küll, et tõsistele arvutiteadlastele ja matemaatikutele on mõnikord teemade üle laiemalt mõtlemine väga vastukarva, minu subjektiivseis silmis mõnikord lausa nii vastukarva, et üli-fokusseerituse hinnaks on fookuses oleva töö ebaefektiivsus, kuid siiski arvan, et keel, antud juhtumil eesti keel, peaks abistama mõtlemist, mistõttu terminite otsimisel, uute nimede väljamõtlemisel, on siiski oluline ka taust, kus neid termineid kasutatakse. Sellest johtuvalt kirjeldan järgnemvalt natuke praeguse küsimuse tausta, arvates ise, et tausta kirjeldus ei ole üldsegi teemaväline.

Üks osa taustast on küsimus, et kui programmi töö käigus tekitatakse mingi "logi", nii nagu GCC ja Inteli ICC korral seda profileerimiseks C++ binaaridega tehakse, a la et programmi töö tagant-järgi analüüsimiseks kirjutab programm mingisse faili mingeid andmeid, näiteks, et millises funktsioonis kui kaua ja kui tihti oldi, eesmärgiga võimaldada hiljem neid andmeid mingi muu programmiga analüüsida, siis kuidas nende andmete kirjutamist eesti keeles nimetatakse? "Tracing" oleks vist inglise keelne nimetus, aga Jüri Kiho 2000. aasta "Väike Java Leksikon", sõltumata oma tublidusest ja legendaarsusest, seda sõna ei sisalda ja 100 aasta pärast (2116) pakub üldse huvi vaid ajaloolastele.

Vastavalt Martin Fowler'i jutule (arhiivkoopia) nimetatakse süntaksita, teegina realiseeritud, "DSL'i" inglise keeles "internal domain-specific language". Mulle näib, et üks idee, kuidas sellises keeles kirjutatud programmi töö korrektsuse puudumise kohta vihjeid saada, on matkida GCC-stiilis "instrumenteerimist", kus teegina realiseeritud tarkvara logib oma tööd kuhugi tekstifaili, mida siis hiljem selle teegi-spetsiifilise töövahendiga uuritakse. Töövahend võib olla kirjutatud teegist erinevas programmeerimiskeeles ning kasutada uhkelt mingeid teoreemitõestajaid ja mida kõike.

2016 seisuga ei tea ma teemast "Model Checking" (selle eesti keelset vastet oleks ka hea teada) veel eriti midagi, aga mulle näib, et eelmises lõigus kirjeldatud tegevus on enam-vähem tagur-pidi versioon "Model Checking" tegevusest. Minu hetke (2016_05) arusaam "Model Checking" tegevusest on, et keegi mõtleb välja mingi DSL'i, millel võib olla ka graafiline kuju, umbes nagu DRAKON'il või Tallinna Tehnikaülikooli CoCoViLa'l, ning siis selle DSL-i spetsiifilise IDE-ga "kirjutatakse" asi valmis, uuritakse DSL-spetsiifiliste töövahenditega, et ega tolle DSL-spetsiifilist vea-tüüpi vigu ei leidu, ning kui vigu ei leita, transleeritakse DSL mingisse "päris-elu-programmeerimiskeelde". Tagur-pidi tegevus on, et "päris-elu-programmeerimiskeeles" kirjutatud programm kasutab teeki, mis on "internal domain-specific language" realisatsiooniks. Too teek kirjutab oma töö käigus mingeid andmeid, puude kujusid, kirjete struktuure, muid andmeid kuhugi faili. Pärast "päris-elu-programmeerimiskeeles" kirjutatud programmi töö lõppu loeb tolle DSL'i spetsiifiline töövahend tekstivailist välja tolles "sisemises-DSL'is" kirjutatud programmi töö analüüsimiseks vajalikud andmed ja siis analüüsib uhkelt oma loojate fantaasia raames nii nagu jaksab, andes vastuse, et kas antud programmis leidus otsitavat tüüpi vigu või mitte.

Oma avalik-isiklikus konspektis panin sellele tagur-pidi tegevusele inglise keelseks nimetuseks "Domain-Specific Language Tracing", akronüümiga DSLT, kuid ma ei tea, kuidas seda eesti keeles öelda. Tore oleks, kui keegi targem ütleks, et sellele asjale on juba arvutiteadlaste hulgas inglise keelne väljend, termin, olemas ja see minu "Domain-Specific Language Tracing" on täielik lollus. Siis saaks juba märksa produktiivsemalt eesti keelseid vasteid otsida.

Kuid seniks, tänan lugemast ja tänan vastuste/selgituste eest. :-)

küsitud May 24 '16 at 14:14

martin_vahi's gravatar image

martin_vahi
133


Võibolla "mikro-keel"?

link

vastatud May 24 '16 at 15:01

martin_vahi's gravatar image

martin_vahi
133

Parimad tõlked, mida oskan pakkuda:

  • "domain specific language" - domeenipõhine keel, probleemipõhine keel;
  • "model checking" - mudeli kontrollimine.

"model checking" on üldiselt programmi töö kontrollimine vastavalt mingile standardile.

Üks lihtsamaid näited on luku-vaba pinu töö kontrollimine. Mudeliks on see, et ükski element ei tohi kaduma minna ning samast lõimest pinusse pandud asjad säilitavad järjekorra.

Olenevalt, kui täpselt kontroll tehakse saab rääkida tõestamisest (model proving / formal verification), verifitseerimisest (model verification), kontrollimisest (model checking), hägustamisest/juhuslik kontrollimine (fuzz testing).

DSL ei ole ühelgi juhul vajalik, saab ilma hakkama. Tavaliselt küll tõestamise/verifitiseerimise juures kasutatakse (nt. SPIN, TLA+). Kontrollimise ja hägustamise juures on erinevad teegid, mida saab kasutada (nt. QuickCheck, go-fuzz). Vajadusel annab neid erinevaid osasid ise kirjutada.

Sellest "tagurpidi mudeli kontrollimise" põhimõttest ma päris täpselt aru ei saanud.

link

vastatud May 24 '16 at 15:35

egon's gravatar image

egon ♦♦
771239

Eesti keele puhul on väga headeks allikateks Andmekaitse ja infoturbe leksikon ja Standardipõhine tarkvaratehnika sõnastik. Näiteks saame sealt teada, et tracing on jälitus ja et domain on valdkond. Nende sõnastike lahe omadus on see, et kui otsida mingit terminit, mida seal sõnastikus ei ole, siis suure tõenäosusega mingi aja pärast ta ilmub sinna. :)

DSLe olen mina ise alati tõlkinud valdkonnaspetsiifilisteks (programmeerimis)keelteks ja vähemalt senikaua pole nende sõnastike autori poolt nurinat kuulnud. Internal vs. external pole õnneks pidanud eesti keeles väljendama.

link

vastatud May 25 '16 at 09:58

Margus%20Freudenthal's gravatar image

Margus Freudenthal
212

Vastuste eest muidugi tänan, kaasa arvatud e-postitsi saadud vastuste eest, aga mu hetke kallak on sinna poole, et mulle väga meeldib siin foorumis välja käidud fraas, "probleempõhine keel", ning väljendi, "internal domain specific language", soovin tõlkida kui "analüsaatorivaba probleempõhine keel". Sarnaselt, "external domain specific language" vaste on siis "analüsaatoriga probleempõhine keel".

Kui ma nüüd õieti mäletan, siis Ain Isotamm kasutas oma kursuses (arhiivkoopia) selle tarkvarakomponendi nimetuseks, mis teksti vormis oleva programmikoodi analüüsipuuks ("abstract syntax tree", AST) teisendas, "analüsaator". Sealt ka mõte, et kui programmeerimiskeelel puudub tekstiline vorm, siis pole vaja ka analüsaatorit, mis teksti analüüsipuuks teisendab, ning programmeerimiskeel on "analüsaatorivaba". Teek ise võib oma kutsungite käigus andmestruktuuridesse mingit analüüsipuud luua, aga seda analüüsipuud pole vaja teksti analüüsi abil tekitada. Omamoodi huumoriga saan lisada, et väljend "probleempõhine keel" on ka selles mõttes lahe, et ma mäletan hägusalt kuidas Ain Isotamm aastal 2002 või 2003 oma translaatorite õppeaine mingis sissejuhatavas loengus väitis, nii möödaminnes, et tolle kursuse eesmärk on anda Teile vaid oskus aru saada, kuidas need asjad käivad, et tõenäoliselt ei tule Teil KUNAGI OMA ELU JOOKSUL ise oma programmeerimiskeelt looma hakata. Ja siin me nüüd oleme. :-D

Kõrvalkommentaarina mainin, et kogu see teksti konverteerimine analüüsipuuks JÄÄB TÄIESTI ÄRA olukorras, kus analüüsipuu kirjutatakse valmis kohe teksti kirjutamise tööprotsessi käigus, kus tekstiredaktorit kasutav inimene valib menüüdest, mida üks või teine tähemärkide grupp (väldin praegu meelega väljendit, "sõna", sest sellega tähistati Ain Isotamme kursuses programmi koodi tervikuna.) süntaksipuu tähenduses tähistab. Geniaalne!!! Kui ma asjast õieti aru olen saanud, siis muutsid Peterburi venelased oma MPS-iga ANTLR'i sarnased asjad pea-aegu kasutuks. Selles valguses on tegelikult jube kurb, et Putin on Venemaa teadlaste teadusartiklite tsensuuriga(arhiivkoopia) pannud Venemaa sisuliselt islamimaade oleku poole teele. Ajalookilluna mainin, et islamimaades lõppes innovatsioon enam-vähem keskkajal ära. Tegelased islamimaades, ka rikaste saudide juures, pole siia-maani õppinud ise omale relvi konstrueerima ja kui siis sellistelt luuseritelt saab ka USA sõjaliselt lüüa, siis võite arvata, mis USA sõjaväel Vene armeega sõdides. Sisuliselt tuleb eestlastel hakata USA sõjaväele relvi konstrueerima, et oma enda Eesti-Vene sõda suuta pidada. Kui edasi mõelda, et JetBrains'i IDE on 2016 seisuga üks maailma vingemaid IDE-sid üldse, sellega käiakse läänes koodihoidlates, lohakamal juhul teenindusserverites, siis pole Venemaale NSA-võimekust vajagi, et kogu internet pahavaraga maha võtta.

Tänan vastuste eest ja tänan lugemast. :-)

link

vastatud May 27 '16 at 12:48

martin_vahi's gravatar image

martin_vahi
133

edited May 27 '16 at 13:01

Sinu vastus
lülita eelvaade

Jälgi seda küsimust

By Email:

Pärast sisselogimist saad tellida muudatuse teavitusi siit

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *kaldkiri* või __kaldkiri__
  • **paks kiri** või __paks kiri__
  • link:[tekst](http://url.com/ "pealkiri")
  • pilt?![alt tekst](/path/img.jpg "pealkiri")
  • nummerdatud nimekiri: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • põhilised HTML märgendid on samuti toetatud

Pinu tööpakkumised

kõik pakkumised »

Küsimuse sildid:

×1
×1
×1

küsitud: May 24 '16 at 14:14

nähtud: 1,505 korda

viimati uuendatud: May 27 '16 at 13:01

Sarnased küsimused

Litsents: Creative Commons Attribution License | Kontakt: info@pinu.ee