У садржају

Esperanta komputila programlingvo

од MiMalamasLaAnglan, 08. септембар 2019.

Поруке: 135

Језик: Esperanto

sergejm (Погледати профил) 06. октобар 2019. 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 (Погледати профил) 07. октобар 2019. 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 (Погледати профил) 07. октобар 2019. 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 (Погледати профил) 07. октобар 2019. 17.22.41

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

sergejm (Погледати профил) 07. октобар 2019. 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 (Погледати профил) 07. октобар 2019. 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 (Погледати профил) 08. октобар 2019. 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 (Погледати профил) 08. октобар 2019. 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 (Погледати профил) 08. октобар 2019. 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 (Погледати профил) 09. октобар 2019. 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

Вратите се горе