Al la enhavo

Esperanta komputila programlingvo

de MiMalamasLaAnglan, 2019-septembro-08

Mesaĝoj: 135

Lingvo: Esperanto

sergejm (Montri la profilon) 2019-oktobro-06 16:29:23

Sed mi supozis vi volas fari ion pli grandan, ekz:
1. Ricevi fontaĵojn C, akirebla laŭ GNU licenco.
2. Anstataŭi ŝlosilvortojn kaj erarmesaĝojn per la Esperantaj en literaloj
3. Kompili per malnova C-kompililo.
4. Anstataŭi ŝlosilvortojn kaj erarmesaĝojn per la Esperantaj en aliaj lokoj.
5. Kompili per Esperanta C-kompililo.

Altebrilas (Montri la profilon) 2019-oktobro-07 09:16:57

Bonan kuraĝon!

(laŭ la franca esprimo, kiun oni diras al iu kiu frontas malfacilaĵon aŭ entreprenas longan klopodan taskon)

MiMalamasLaAnglan (Montri la profilon) 2019-oktobro-07 14:29:13

sergejm:Nu simile oni povas fari kun C:
#define se if
#define alie else
#define liveru(x) return x
#define revenu return
typedef int ent;

ent Fakt(ent n) {
se (n == 0) {
liveru(0);
} alie {
liveru(Fakt(n-1)*n);
}
}
Tio estas mirinda ideo! Estus facile tiel krei dosieron "eo.h" por programi en C (kaj ankaŭ C++) esperante.

Dankegon pro tiu ideo.

Redakto: Mi provis fari Saluton Mondo programo kaj ricevis eraron.
Eraro:
saluton.c:6:3: error: use of undeclared identifier 'liveru'
liveru 0;
^
1 error generated.
saluton.c:
#include
#include "eo.h"

ent main() {
printf("Saluton Mondo\n");
liveru 0;
}
eo.h:
#define se if
#define alie else
#define liveru(x) return x
#define revenu return
typedef int ent;

sergejm (Montri la profilon) 2019-oktobro-07 17:22:41

Se vi volas skibi "liveru x;" tiam skribu en eo.h "#define liveru return"

sergejm (Montri la profilon) 2019-oktobro-07 17:35:53

Se vi volas ricevi erarmesaĝoj Esperante, skribu programon "traduku", kiu kaptas mesaĝoj de komplilo kaj tradukas ilin.
Uzado:
gcc -c saluton.c | traduku

MiMalamasLaAnglan (Montri la profilon) 2019-oktobro-07 21:26:41

sergejm:Se vi volas ricevi erarmesaĝoj Esperante, skribu programon "traduku", kiu kaptas mesaĝoj de komplilo kaj tradukas ilin.
Uzado:
gcc -c saluton.c | traduku
Vi skribu tiun tradukilon, se vi volas ĝin. Eble povus esti "gcc-eo"-programo.

Kio estas la typedef-oj, kiujn mi devas aldoni? Vi proponis "ent[jero]". Kiel tradukiĝus char? Eble double estus "duobla" kaj long estus "longa".

sergejm (Montri la profilon) 2019-oktobro-08 00:14:35

#define anstataŭas la vorto ĉie, kie ĝin renkontas. En kompililaj mesaĝoj vi vidos ne originalon, sed anstataŭaĵon.
typedef definas novan tipon, tio estas pli bone - komplilo pli verŝajne skribas pli kompreneblan erarmesaĝon.
#define tipo typedef
#define konst const
tipo char signo, karaktro; // rigardu komputeko.net
konst ent unu = 1;

MiMalamasLaAnglan (Montri la profilon) 2019-oktobro-08 15:43:58

sergejm:#define anstataŭas la vorto ĉie, kie ĝin renkontas. En kompililaj mesaĝoj vi vidos ne originalon, sed anstataŭaĵon.
typedef definas novan tipon, tio estas pli bone - komplilo pli verŝajne skribas pli kompreneblan erarmesaĝon.
#define tipo typedef
#define konst const
tipo char signo, karaktro; // rigardu komputeko.net
konst ent unu = 1;
Ĉu eblas traduki aferojn kiel "#define" kaj "#include"?

Laŭ https://komputeko.net/index_en.php?vorto=character, "signo" estas pli ofta ol "karaktro".

Dankegegon pro via helpo kun la programlingvo! Mi nun bezonas krei nur .h-dosieron!

sergejm (Montri la profilon) 2019-oktobro-08 16:55:14

Ne. Direktivoj de antaŭprocesoro mem ne estas anstataŭeblaj. Sed eblas uzi alian antaŭprocesoro (simile al postprocesoro por traduki erarojn)

MiMalamasLaAnglan (Montri la profilon) 2019-oktobro-09 15:01:23

sergejm:Ne. Direktivoj de antaŭprocesoro mem ne estas anstataŭeblaj. Sed eblas uzi alian antaŭprocesoro (simile al postprocesoro por traduki erarojn)
Mi faris ĝin. https://pastebin.com/hqZ1M8Rb

Reen al la supro