Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Kielen toteutus

Sivun loppuun

samix [13.08.2002 11:53:16]

#

Tietäiskö kukaan miten ohjelmointi-kieliä tehdään???

samix [13.08.2002 11:54:33]

#

En pä tiedä mut katon jos tiedän

tomaattigeeni [13.08.2002 14:09:12]

#

miten toi sun toka kommenti liitty?

voihan niitä ohjelmointikieliä tehä melkeen millä vaan toisella kielellä :) tosin kovin hyvää jälkeä tuskin qb:lä saa

thefox [13.08.2002 15:03:30]

#

http://reaper.letku.net/leim/tac02.zip
Siinä on todella laama asmilla muutamassa päivässä väännetty kieli (siis itse tekemäni). "Kääntää" filut .COM suoritettaviksi tiedostoiksi.
En suosittele.

Vilikki [15.08.2002 22:10:47]

#

Kenties samix on unohtanut kirjautua ulos, ja siihen on tullut joku muu koneelle. Aikaväli näyttää todella lyhyeltä, joten samix on kenties lähtenyt koneelta heti ekan viestin jälkeen...

(nimetön) [16.08.2002 11:01:43]

#

Periaatteessa tiedän.

Otat assemblerin ja alat kirjoittaa sillä komentokirjastoja haluamallesi syntaksille. Seuraavaksi kirjoitat kääntäjän, joka tulkkaa nuo käskysi binääreiksi - kakkupala ;D (ei ihan niinkään).

Netistä löytyy englanninkielisenä listoja, joissa on erilaisten ohjelmointikielten ominaisuuksia ja kotisivuja. Monet Jenkkilän yliopistot ovat kehittäneen esimerkiksi oppilastöinä omia ohjelmointikieliään.

samix [20.08.2002 17:20:00]

#

Kuka viittisi lähettää mulle itse tehdyn ohjelmointi-kielen koodin? Osoite on samilau@mbnet.fi

thefox [23.08.2002 20:54:51]

#

lainaus:

Kuka viittisi lähettää mulle itse tehdyn ohjelmointi-kielen koodin? Osoite on samilau@mbnet.fi

Ei kukaan.

zafner [23.08.2002 23:39:25]

#

Kielen voi tehdä niin, että keksii sille vain syntaksin. Tosin jos haluaa käyttää sitä kieltä, niin sitten kannattaa tehdä myös jokin kääntäjä.

Lauri [24.08.2002 19:33:31]

#

Vaikka QB:llä voi tehdä ohjelmointikielen. Huonon sellaisen.

thefox [24.08.2002 21:33:12]

#

lainaus:

Vaikka QB:llä voi tehdä ohjelmointikielen. Huonon sellaisen.

Riippuu miten ohjelmointikielen määrittelee. Esim C++ "ohjelmointikieli" ei sinäänsä ole "tehty" millään. Se vain määrittelee kielen syntaksin, esim että jokaisen käskyn perään tulee puolipiste jne.
Nämä "QB ohjelmointikielet" ovat useimmiten surkeita tekeleitä jotka "kääntävät" sen oman "ohjelmointikielensä" BASIC-kielelle QB:tä varten.

samix [25.08.2002 14:30:29]

#

Aiommeko tehdä olioperustaisen kielen kun siitä kyselemm?/?*

Vilikki [26.08.2002 15:57:07]

#

Löytyisikö muuten mistään päin nettiä ohjeita/vinkkejä ohjelmointikielen tekoon? En usko, että teen sellaista ohjelmointikieltä itse, mutta olisi niitä ohjeita mielenkiintoista lukea. Ja sitten, että löytyykö aiheesta mitään kirjoja?

Antti [31.08.2002 13:16:04]

#

No seuraavasta linkistä löytyy jotain (englanniksi)
http://sk.nvg.org/lang/lang.html

Tässä suomenkielinen yleisdokumentti:
http://www.cs.utu.fi/knuutila/Courses/okp/luennot/johdanto.pdf

Kirjoittamalla Googleen ohjelmointikieli saat listan jos jonkin näköisistä linekistä eri ohjelmointikieliin - ihan suomenkielellä...

Antti [31.08.2002 13:18:57]

#

Juu... sen pdf dokumentin aloitus sivu on muuten tämä:
http://www.cs.utu.fi/knuutila/Courses/okp/default.html

Siinä on kokonaiskatsaus ohjelmointiin ja ohjelmointikielen vaatimuksiin. Kyseessä on jokin luentomateriaali aiheesta.

Hipo [13.09.2002 16:06:16]

#

Itse kun väänsin ohjelmointikieleleni tulkintaa, jaoin sen kolmeen osaan: parseri, esitulkki ja itse tulkki. Parseri on melko simppeli, palasteli skriptin palasiksi. Esitulkki katsoo minkä tyyppistä data on ja säilöö datan rekursiivisesti. Tulkki taas ajaa komennot. Ja selitys:

hirvi = (1 + 2) * 5
hauva = 4 * hirvi

Parserilta tulee hirvi, =, (, 1, +, 2, ), *, 5, separator, hauva, =, 4, *, hirvi, separator

Esitulkin jälkeen:

cmdlist (
  (name hirvi, oper =, brackets (int 1, oper +, int 2), oper *, int 5),
  (name hauva, oper =, int 4, oper *, name hirvi)
)

oper on lyhenne operatorista. Ja data sisältää dataa, cmdlist pitää sisällään kaksi komentoa joista toinen pitää vielä sisällään sulkeet, jossa on komento.

Sulkeet ajetaan ensin, sen jälkeen operit suurimmasta laskujärjestysluvusta alkaen. = operilla on tietenkin pienin, * ja / taitaa olla suurimmat.

(name hirvi, oper =, brackets (int 1, oper +, int 2), oper *, int 5)
Ekat sulut: (int 1, oper +, int 2). Lasketaan 1 + 2 ja palautetaan tulos eli 3.
(name hirvi, oper =, int 3, oper *, int 5).
Kaksi operia, = ja *. Kertomisella on suurempi laskujärjestys joten se ensin.
(name hirvi, oper =, int 15).
Asetetaan ympäristöön hirvi-kohdalle 15.

Seuraava komento:
(name hauva, oper =, int 4, oper *, name hirvi)
= ja *. Valitaan *. int * name. Haetaan name ympäristöstä, 4 * 15. Ja sitten vain name = int.

Innostuinpas kirjottamaan ja tuli aika pitkä, suorastaan artikkeli, mutta ehkä tästä on jollekki hyötyä. :)


Sivun alkuun

Vastaus

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

Tietoa sivustosta