Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: C ohjelman simulointi selaimessa

jakestyles [09.10.2013 17:02:58]

#

Eli tarkoitus olisi näyttää käyttäjälle C-koodi (komentoriviräpellystä) ja suorittaa se. Koodia ei tarvitse muuttaa, vaan pelkkä suoritus pitäisi näkyä.
Tässä pitää ottaa huomioon interaktiivisuus eli suorituksen aikana koodi voi kysyä esim. numeroita käyttäjältä.

Esim. kysytään etunimi ja sukunimi ja tulostetaan "Heippa etunimi sukunimi"

Tarkoitus on tehdä yksinkertaisia esimerkkikoodeja aloittelijoille.

Mitenhän onnistuisi?

qeijo [09.10.2013 17:57:21]

#

Konsoli/IDE emulaattori selaimesta ja PHP "proxy" väliin.

Jos koodia ei tarvitse muuttaa, niin tarviiko esimerkkikoodeja edes esittää muuta kuin staattisesti ja PHP:llä luoda aina odotettu tuloste.

jlaire [09.10.2013 18:10:41]

#

Ainakin periaatteessa C-koodin voi kääntää JavaScriptiksi käyttäen clangia ja emscripteniä. En kuitenkaan ole tutustunut, miten kätevästi I/O:n saa toimimaan.

Yucca [09.10.2013 21:18:18]

#

Siis jotain sellaista kuin http://ideone.com/ (missä voi räpeltää useallakin ohjelmointikielellä; muuten hyvä mutta käyttöliittymä sikäli surkea, että virheen jälkeen pitää aloittaa alusta, eli ei tallenna koodia, tai sitten missasin jotain)?

Kannattaa miettiä tavoitetaso. Oikein toimivan C-toteutuksen tekeminen selainohjelmoinnilla ei ole ihan triviaalia varsinkaan, jos halutaan tukea nykyistä C-kieltä. Jos taas ajattelit, että C-koodi suoritetaan palvelimessa, niin onhan se periaatteessa mahdollista, käytännössä melkoinen tietoturva-aukko.

Metabolix [10.10.2013 14:10:43]

#

Jos tarvitaan vain yksi ohjelma eikä se ole kovin mutkikas, voi olla helpointa ohjelmoida siitä erikseen versio JavaScriptilla. Toinen vaihtoehto on Emscripten, ja kolmas vaihtoehto on PC-emulaattori, Linux ja Tiny C Compiler.

Yucca kirjoitti:

Jos taas ajattelit, että C-koodi suoritetaan palvelimessa, niin onhan se periaatteessa mahdollista, käytännössä melkoinen tietoturva-aukko.

Ohjelmia on hyvinkin mahdollista kääntää ja ajaa palvelimella turvallisesti. On monia ohjelmoinnin harjoitteluun tarkoitettuja sivustoja, joissa tehdään näin, esimerkiksi USACO training program. Tämä ei kuitenkaan ole käytännöllistä, jos ohjelman pitää kommunikoida käyttäjän kanssa, ja lisäksi toteutus on melko vaivalloinen eikä edes aivan helposti onnistu tavallisessa webhotellissa.

fergusq [14.10.2013 07:36:57]

#

Jos on kyse todella yksinkertaisista ohjelmista, voi kai periaatteessa käyttää javascriptillä ohjelmoitua tulkkia C:n kaltaiselle kielelle, jossa on kaikki tarvittavat ominaisuudet sen sijaan, että käyttäisi kokonaista PC-emulaattoria.

Vastaus

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

Tietoa sivustosta