Kontakt:
autotool-admin@theopc.informatik.uni-leipzig.de
Download: Postscript-Version
Genau die in der ersten dieser Datei Spalte definierten Subjects werden von autotool verstanden. Dabei werden nur Emails beantwortet, deren Absendeadresse autotool ebenfalls bekannt ist. (siehe 3)
Es gibt, wie so oft, viele Möglichkeiten, daß etwas nicht funktioniert:
ERROR "/home/autotool/autotool/ss01/aufgaben/FUN14.hs" (line 11): Type error ...
Das darf nicht passieren. Wenn doch, ist es ein Fehler im autotool. Das teilen Sie bitte sofort per Mail mit.
ERROR "/home/autotool/autotool/work/Student9960.hs" (line 6): Syntax error ...
Mögliche Ursachen und Auswege stehen in dem FAQ-File, das Sie gerade betrachten.
Program error: Prelude.!!: index too largerunhugs: Error occurred
Das darf nicht passieren. Wenn doch, ist es ein Fehler im autotool. Das teilen Sie bitte sofort per Mail mit.
Hier sollten Ihnen die Fehlermeldungen des Korrektors weiterhelfen.
Fehler: autotool antwortet garnicht.
Ursache: Das Tool hat die Ihre Mail gar nicht registriert, weil
Auf Mails mit unbekanntem Subject oder Absender erfolgt keine Antwort (noch nicht mal eine Fehlermeldung).
Abhilfe: Das Subject muß ein Wort aus der Liste der bekannten Aufgaben sein. (siehe 1)
Ihre Mail muß den Absender haben, den Sie zu Semesterbeginn bei der
Einschreibung angegeben hatten. (Diese können Sie auch jetzt noch über
das Web-Formular ändern, aber diese Änderungen werden aus
Sicherheitsgründen nicht sofort automatisch für autotool übernommen.)
Fehler:
ERROR "Student6618.hs" (line 19): Syntax error in expression (unexpected `;', possibly due to bad layout)
oder
ERROR "Student6419.hs" (line 4): Syntax error in input (unexpected keyword "deriving")
Ursache: Ihre Eingabe enthält
data Foo = Bar deriving Baz
oder
t = listToFM [ ( ( Just 'a' , Z1, 'a'), mkSet [ ( Z2, "b") ] ) ]
oder
student = NPDA { eingabealphabet = mkSet "ab" , kelleralphabet = mkSet "Sab" , zustandsmenge = mkSet [ Z0 ] , tafel = t , startzustand = Z0
oder
, ( ( Nothing , z1 , 'S' ), mkSet [( z1 , "SSb"),(z1 , "a")]) , ( ( Nothing , z1 , 'Z' ), mkSet [( z1 , " " )])
Der Fehler ist jedesmal ein unerwartetes Zeichen in der ersten Spalte.
Hingegen hier:
import NPDA data Z = Z0 | Z1 | Z2 | Z3
muß das data in der ersten Spalte stehen.
Abhilfe:
data Foo = Bar deriving Baz
oder
t = listToFM [ -- Spalte 1 (Z0, x = 0) ( ( Just 'a' , Z1, 'a'), mkSet [ ( Z2, "b") ] ) ]
oder
student = NPDA { eingabealphabet = mkSet "ab" , kelleralphabet = mkSet "Sab" , zustandsmenge = mkSet [ Z0 ] , tafel = t , startzustand = Z0
oder
, ( ( Nothing , z1 , 'S' ), mkSet [( z1 , "SSb"),(z1 , "a")]) , ( ( Nothing , z1 , 'Z' ), mkSet [( z1 , " " )])
oder
import NPDA data Z = Z0 | Z1 | Z2 | Z3
Schalten Sie, falls erforderlich, in Ihrem Mailer/Editor den automatischen Zeilenumbruch ab.
Begründung: Die Indentation spielt in Haskell eine wichtige Rolle, weil
vor jedes Wort, das in der allerersten Spalte beginnt, automatisch ein
Semikolon eingesetzt wird. Die sind nämlich die Trennzeichen (ähnlich
wie in C), aber man kann sie (und die dazugehörenden Klammern {}
)
aufgrund dieser sogenannten Layout-Regel meist weglassen. Siehe auch
diese Erläuterung.
Fehler:
Type checking ERROR "Student****.hs" (line **): Unresolved top-level overloading *** Binding : student *** Outstanding context : (Num Fun, Enum Fun)
Ursache:
student = Ind 1 [ Sub 0 [ Builtin 2 "paar" , Sub 0 [ succ 1, Zero 0 ] , ...
Der Bezeicher "succ"
bezeichnet gar nicht das, was Sie meinen.
Abhilfe: Es muß Succ
(mit großem Anfangsbuchstaben) heißen.
Fehler: Outstanding context: Num Bewegung.
Ursache: In einer Turing-Maschinen-Tabelle steht das:
t = listToFM [ ( ('A', Z0), mkSet [ ( 'A', Z0, R ) ] ) ,( ('#', Z0), mkSet [ ( '#', F, 0 ) ] ) ]
Die ''0'' (Null) ist keine erlaubte Bewegung.
Abhilfe: Es muß ein ''O'' (Oh) sein.
Fehler:
ERROR "Main24618.hs" (line 3): Syntax error in import declaration (unexpected symbol "aufgabe43")
Ursache: Das Subject der Mail war aufgabe43
. Es wird direkt
abgeschrieben in eine Import-Deklaration, nämlich import aufgabe43
,
aber das Modul ''aufgabe43'' gibt es nicht, denn Modul-Namen in Haskell
beginnen mit Großbuchstaben.
Abhilfe: Das Subject muß Aufgabe43
sein.
Fehler:
runhugs: Error occurred Reading file "Main9940.hs": Parsin^H^H^H^H^H^HReading file "Student9940.hs": Parsing ERROR "Student9940.hs" (line 2): Syntax error in declaration (unexpected symbol "message")
Ursache: Ihr Mailer schickt sowas:
> This is a multi-part message in MIME format. > > ------=_NextPart_000_001B_01C06408.F1694D60 > Content-Type: text/plain; > charset="iso-8859-1" > Content-Transfer-Encoding: quoted-printable > > import Grammatik > > student =3D Grammatik > { terminale =3D "01"
Abhilfe: Stellen Sie Ihre Mailer so ein, daß er nur Plain-Text
(ASCII) verschickt, und keine multi-part-messages mit HTML-Anhängen.
Fehler:
... Parsing ERROR "Student3499.hs" (line 14): Syntax error in declaration (unexpected `.')
Ursache: Ihre Mail enthält eine Unterschrift
... _______________________________________________ Sent through irgendeinen kostenlosen provider
welche kein kein gültiger Haskell-Code ist.
Abhilfe: Das autotool liest die Mail nur bis zur ersten Zeile, auf die der reguläre Ausdruck
^--$
paßt. D.h., wenn sich Ihr Provider an den Standard hält, die
Unterschrift durch eine Zeile "--"
vom Text zu trennen, dann klappt
es. Wenn nicht, dann schimpfen sie mit ihm und fügen die Zeile "--"
(nur zwei Zeichen, keine Leerzeichen) eben selbst ein.
Fehler:
... ich erzeuge jetzt alle Wörter aus L(G), in deren Ableitung nur Wortformen der Länge <= 12 vorkommen das sind runhugs: Error occurred ERROR: Garbage collection fails to reclaim sufficient space
Ursache: In Ihrer Grammatik gibt es sehr viele Ableitungen, und Autotool hat dafür nicht genug Speicherplatz.
Abhilfe: Ändern Sie die Grammatik. Die Aufgaben sind alle auch mit
Grammatiken lösbar, die nicht zu stark verzweigen.
Fehler:
... ERROR "Student26935.hs" (line 8): Undefined variable "a"
Ursache: Ihre Eingabe enthält
t = listToFM [ ( ( Just a , Z0, 'b'), mkSet [ ( Z1, "ba")] ) , ( ( Just b , Z0, 'b'), mkSet [ ( Z1, "ba")] ) ...
Nach Just
steht die Variable a, die aber nirgendwo deklariert ist.
Abhilfe: Sie meinen tatsächlich dort nicht die Variable a, sondern das Zeichen 'a', müssen also schreiben:
t = listToFM [ ( ( Just 'a' , Z0, 'b'), mkSet [ ( Z1, "ba")] ) , ( ( Just 'b' , Z0, 'b'), mkSet [ ( Z1, "ba")] ) ...
Fehler:
ERROR "Student23738.hs" (line 4): Syntax error in data definition (unexpected `=') ERROR "Student19480.hs" (line 4): Syntax error in data type definition (unexpected `|')
Ursache: Ihre Eingabe enthält
data z= z0 deriving (Eq, Ord, Show) -- oder data Z = z0 | z1 | z2 | z3 | z4 deriving (Eq, Ord, Show)
Abhilfe: Sowohl der Typname (Z) als auch die Konstruktoren (Z0, Z1, ...) müssen mit Großbuchstaben beginnen.
data Z = Z0 | Z1 | Z2 | Z3 | Z4 deriving (Eq, Ord, Show)
Die Lösungen zu den Aufgaben FUN111, FUN112, FUN113 sehen so aus:
import Fun student = ... Builtin 2 "mal" ...
Die Funktion, die Sie definieren sollen, heißt in jedem Fall
student. Die bereits definierten Funktionen, die Sie benutzen wollen,
heißen Builtin 1 "prim"
usw. (auch die, die Sie in einer anderen
Teilaufgabe als 'student' definiert haben).
Frage: Welche Builtins gibt es denn?
Das ist je nach Aufgabe verschieden. Meist sind jedoch die arithmetischen Funktionen vorhanden, die in dieser Liste stehen: Arithmetik.hs
Frage: Kann ich selbst Funktionen einbauen?
Ja, aber nicht als Builtins, sondern so, wie in diesen Beispielen: Examples.hs