Kann man den gcc so einstellen, dass er Fehlermeldungen auf Deutsch oder
Französisch ausgibt?
Ich programmiere hier mit Drittklässlern, da wäre das hilfreich.
Sonst werde ich wohl auf TruboC zurückgreifen müssen. Ich glaube, der
konnte das?
Rudi Diesel schrieb:> Ich programmiere hier mit Drittklässlern, da wäre das hilfreich.
Ein Compiler, bei dem das leider wirklich geht, ist der in "Visual
Studio" resp. "Visual C++" enthaltene. Gibts als "Visual Studio
Community Edition" oder "Visual C++ Express" für lau.
Deutschsprachige Fehlermeldungen sind i.d.R. gar keine gute Idee, weil
sie oft komplett unverständlich und sinnverzerrend sind, andererseits
sind sie eine gute Abwehr, um Leute davon abzuhalten, sich über Google &
Co. Hilfe zu suchen - denn mit den deutschsprachigen Meldungen findet
man nur sehr selten irgendwas sinnvolles.
Warum müssen Drittklässler schon mit C-Compilern hantieren? Werd' ich zu
alt?
Hallo !
Zumindest unter Linux kein Problem:
- $LANG muß richtig gesetzt sein
- /etc/locale.gen anpassen (gewünschte Sprachen hinzufügen bzw.
auskommentieren)
- locale-gen aufrufen
- spätestens nach aus- und wieder einloggen sollte es passen.
Ich denke aber mal, bei den meisten Distros wird das schon erledigt
sein.
MfG
Rufus Τ. F. schrieb:> Warum müssen Drittklässler schon mit C-Compilern hantieren? Werd' ich zu> alt?
Ich würde ja wetten, daß sie das nicht "müssen" ;-)
Ich kenne aber einige 9/10-Jährige, die haben einfach keinen Bock, nach
"Heidi" zu googeln, Schildkröten über den Bildschirm zu schubsen oder
sich einen Kinderteller zu bestellen.
Und wenn sie mit C-Compilern hantieren, kann ihnen auch niemand mehr
verbieten, so zu fluchen wie Papa :-)
Rudi Diesel schrieb:> Kann man den gcc so einstellen, dass er Fehlermeldungen auf Deutsch oder> Französisch ausgibt?
Ja, normalerweise geht das. Es gibt allerdings einige darauf basierende
Compiler-Toolchains, wo die Unterstützung dafür leider schon beim Bauen
des Compilers explizit abgeschaltet wurde. Damit geht es dann nicht.
> Ich programmiere hier mit Drittklässlern, da wäre das hilfreich.
Dritte Schulklasse oder drittklassige Schüler? ;-)
Für beide halte ich C für doch arg verfrüht.
> Sonst werde ich wohl auf TruboC zurückgreifen müssen. Ich glaube, der> konnte das?
Turbo C? Du meinst den aus dem letzten Jahrtausend?
Können Drittklässler überhaupt etwas mit den - deutschen -
Fehlermeldungen anfangen?
Ohne gute Grundkenntnisse von C sind die italienischen genauso
verständlich wie die deutschen oder englischen.
>Turbo C? Du meinst den aus dem letzten Jahrtausend?
Ich glaube kaum, dass die aktuellen Versionen nötig sind.
Versuche mal den neuesten Snapshot vom gcc, da werden noch mehr
Warnungen in bunt und mit Pfeil auf den Fehler ausgegeben. Alternativ
auch llvm.
Es ist wichtiger, dass klar ist, wo der Fehler genau auftaucht. Die
meisten Fehler sind vergessene Semikolons u.ä., da sind die normalen
Meldungen sowieso wenig hilfreich. Eine halbgare Übersetzung bringt dann
genausowenig wie die Orignalmeldung, wenn man tiefe keine Kenntnis von
Computern, Compilern und C hat.
Eben, Zeilennummer zu wissen ist das wichtigste, vor allem wenn man nur
die Grundfunktionen vom GCC benutzt. Wirst doch hoffentlich die armen
3.Klässler nicht auch noch mit GUI libs etc. quälen
Rudi Diesel schrieb:> Kann man den gcc so einstellen, dass er Fehlermeldungen auf Deutsch oder> Französisch ausgibt?
Das ist nur dann möglich, falls gcc ohne --disable-nls configuriert
wurde. Ob das der Fall ist, sieht man mit gcc -v. Falls das der Fall
ist, geht es dann weiter wie oben beschrieben.
Die meisten online Resourcen dazu sind englisch, fast alle Werkzeuge...
es macht wenig sinn jetzt in deutsch zu programmieren (ok, die
kommentare vielleicht, aber sonst?)
Du wirst die kids ja auch nicht fragen was ein kellerspeicherüberlauf
ist und wie man den verhindert.
Möglicherweise ist es für Achtjährige leichter, das Datentypenkonzept
und das von Funktionen und generellen Rechnererscheinungen zu verstehen,
wenn sie mit einem Haskellinterpreter (Hugs, ghci) arbeiten bzw. lernen,
diese Hilfe zu nutzen.
Hier kann man dann auch in Ruhe Genauigkeitsvergleiche machen, mit
Papier+Bleistift, Taschenrechnertechniken, Algorithmen, Zahlen usw.
(Zahlengeschichten (+ Spaß!) sind normalerweise für Kinder sehr
spannend.)
Die Fehlermeldungen beim gcc selbst kann man als Suchspiel verkaufen,
nicht als Spielshow für
wer-weiß-mehr-über-C-Sprachentwicklung-und-C-Bibliotheken.
rbx schrieb:> Möglicherweise ist es für Achtjährige leichter, das Datentypenkonzept> und das von Funktionen und generellen Rechnererscheinungen zu verstehen,> wenn sie mit einem Haskellinterpreter (Hugs, ghci) arbeiten bzw. lernen,> diese Hilfe zu nutzen.
Haskell ist zwar neben Lisp die beste Programmiersprache, die jemals
entwickelt wurde, aber ist es auch die beste für Drittklässler?
Ich glaube, dafür ist sie viel zu abstrakt.
> Die Fehlermeldungen beim gcc selbst kann man als Suchspiel verkaufen,
Und die Fehlermeldungen von Haskell?
Dazu ein kleines Beispiel:
Die "+"-Taste prellt, so dass 3 ++ 4 statt 3 + 4 eingegeben wird
1
>> 3 + 4
2
7
3
>> 3 ++ 4
4
5
<interactive>:2:1: error:
6
• Non type-variable argument in the constraint: Num [a]
7
(Use FlexibleContexts to permit this)
8
• When checking the inferred type
9
it :: forall a. Num [a] => [a]
Zum einen spricht der GHC[I] nur englisch, zum anderen würde wohl auch
eine deutsche Übersetzung beim Drittklässler nicht gerade den spontanen
Aha-Effekt auslösen, oder was meinst du?
S. R. schrieb:> Es ist wichtiger, dass klar ist, wo der Fehler genau auftaucht. Die> meisten Fehler sind vergessene Semikolons u.ä., da sind die normalen> Meldungen sowieso wenig hilfreich.
Dafür wurde mal Pascel bzw. später Delphi erfunden. Im Gegensatz zu C
spuckt der Compiler eine klare Fehlermeldung der Art "Semikolon
da-und-da vergessen" aus und versucht nicht krampfhaft, dem danach
folgenden Quellcode irgendeinen Sinn zu entlocken, um dann letztendlich
doch bravourös zu scheitern.
Wolfgang schrieb:> Dafür wurde mal Pascel bzw. später Delphi erfunden. Im Gegensatz zu C> spuckt der Compiler eine klare Fehlermeldung der Art "Semikolon> da-und-da vergessen" aus und versucht nicht krampfhaft,
Ich lachte mal kurz.
Die verbotenen Semikolons for "else" (und die optionalen Semikolons vor
"end") haben mich bei Delphi regelmäßig auf die Palme gebracht. Was bin
ich froh, dass ich mich damit nicht mehr rumschlagen muss.