Kirjautuminen

Haku

Tehtävät

Keskustelu: Projektit: Theme-ohjelmointikieli

tohoyn [07.04.2014 16:13:24]

#

Theme laajentaa Schemeä staattisella tyypityksellä. Tällä hetkellä Theme on toteutettu Theme->Scheme translaattorina. Alustana on guile 2.0.

Joitakin Themen ominaisuuksia:
- staattinen tyypitys
- yksinkertainen oliosysteemi
- ajonaikaisesti (ja osaksi käännösaikaisesti) reititetyt multimetodit
- parametrisoidut (tyyppiparametrit) luokat, tyypit ja proseduurit
- moduulijärjestelmä
- vakiot ja muunneltavat muuttujat, vakion arvoa ei voi muuttaa sen luomisen jälkeen

Themen kotisivu on osoitteessa

http://www.students.tut.fi/~hoynalan/theme.html

- Tommi Höynälänmaa

fergusq [21.04.2014 21:35:15]

#

Löytyykö sinulta yhtään selostettua tai hyvin kommentoitua esimerkkikoodia, jossa esittelet Themen ominaisuuksia?

tohoyn [24.04.2014 15:51:54]

#

Katso hakemisto theme/theme-code/examples versiossa 0.8.7. Se on saatavilla Themen kotisivulla.

Se sisältää seuraavaa:
- Hello, world!
- and-map, testaa toteuttavatko kaikki listan alkiot annetun predikaatin
- or-map, testaa toteuttaako jokin listan alkio annetun predikaatin
- Abstraktin tietotyypin (jono) toteuttaminen Themen olioilla. Tiedostot: sequence.th?, list-as-sequence.th?, vector-as-sequence.th? ja testiohjelma sequence-test.thp

Lisäksi testit theme/theme-code/tests/test22.thp ja theme/theme-code/tests/test30.thp toteuttavat map-funktionaalin (kuten Schemessä) ja välittävät sille proseduuriargumenttina parametrisoidun ja geneerisen proseduurin.

Tässä on vielä Hello Worldin koodi:

(define-program (examples hello-world)

  (import (standard-utilities core)
	      (standard-utilities console-io))

  (define main
    (lambda (() <none> nonpure)
	(console-print-string "Hello world!")
	(console-newline))))

fergusq [24.04.2014 22:18:04]

#

Minun on vaikea sanoa mitään Themestä. En ole koskaan ohjelmoinut LISP-sukuisella kielellä, enkä juuri mitään themekoodista ymmärrä. Vaikka en minä varmaan ohjelmointikielesi kohderyhmää olekaan.

Themessä on monia hienonkuuloisia ominaisuuksia kuten olioita ja tyyppiparametrisaatiota. Minua kiinnostaisi tietää niiden toteutuksesta lisää. Olenhan minä senlaisia juttuja omiinkin ohjelmointikieliini lisännyt.

Minä kaipaan selkeää opasta, joka avaa asioita muillekin, kuin LISP-sukuisten kielien ohjelmoijille. Kirjoitettuna suomella tai hyvällä englannilla (minä pitäisin enemmän suomesta, mutta jos tavoittelet kansainvälisyyttä niin englantia). Voisit esitellä kielen tärkeitä ominaisuuksia, jotka erottavat sen Schemestä ja antaa selkeitä selostettuja esimerkkejä. Selostetulla tarkoitan, että jokaisesta lyhyestä esimerkistä on muutaman kokonaisen lauseen pituinen seloste, jossa kerrotaan ohjelman toimintaperiaate ja mahdollisesti tietoa käytetyistä ominaisuuksista.

Themen kotisivu on nykyisessä asussaan karu ja autio. Tietoa on vähän ja sitä on vaikea löytää. Et edes mainitse esimerkkejä missään. Jos joku sivulle eksyy, hän luultavasti kääntyy takaisin (ellei sitten tiedä mitä etsiä).

tohoyn [14.12.2014 17:53:04]

#

Theme on uudelleennimetty Theme-D:ksi, jotta vältetään sekaannus J. Weelin Theme-kielen kanssa. Theme-D:n kotisivu on osoitteessa

http://www.students.tut.fi/~hoynalan/theme-d.html

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta