Beiträge von Hoogo im Thema „Styleguide für Assembler“

    Das gibt es schon seit Ewigkeiten, auch in C ist das so, und unter Unix-basierten Betriebssystemen sind auch "readme.txt" und "Readme.txt" und "README.txt" und "README.TXT" 4 verschiedene Dateien.


    Da ist(war?) ja auch mal ein Punkt am Anfang des Dateinamens erlaubt. Für beschränkte 70er-Systeme oder den C64 find ich simple Strings als Dateinamen ja auch voll OK, aber spätestens nach dem ersten RM.* finde ich Einschränkungen doch ganz gut, wenn sie Fehler vermeiden. Oder wenn Du Deiner Mutter am Telefon erklären musst, die Readme.txt zu öffnen.

    Gerade einem solchen Wildwuchs, wie Du ihn jedoch herbeifuerchtest, schiebt dies jedoch einen Riegel vor: Denn Du kannst nun eben NICHT einfach schreiben, wie es Dir passt, sondern Du sollst gefaelligst den korrekten Namen verwenden, naemlich so, wie die Variable definiert wurde.


    Einheitliche Schreibweise ist ja zunächst mal imho kein Wert an sich, sondern heute eine von der Sprache angeforderte Notwendigkeit. Man kann einheitliche Schreibweise und eindeutige Namen zur gleichen Zeit bekommen, das alte Visual Basic zum Beispiel. Editoren setzen ja heute Einrückung und die Positionen von {} durch, und sie könnten auch eine einheitliche Schreibweise durchdrücken - Wenn die Namen denn wie in VB6 eindeutig wären. Readme kann ich mir gut merken, aber ob es Readme, ReadMe, readMe, readme oder README war nicht mehr so gut. Um die Korrektur der Groß/Kleinschreibung kann sich der Computer viel besser kümmern als ich.

    Wenn man sich nun an einen (eigenen oder fremden) Styleguide haelt, dann ist das auch ueberhaupt kein Problem. Wenn Du beispielsweise Variablen immer klein schreibst, Konstanten immer GROSS, und Klassen- oder Typnamen immer mit GrossemAnfangsbuchstaben, dann wirst Du sehen, dass das ueberhaupt keine Herausforderung darstellt. Im Gegenteil, durch das Erzwingen der korrekten Schreibweise kannst Du nun sogar immer an einem Namen direkt ablesen, ob es sich dabei um eine variable, eine KONSTANTE oder einen TypNamen handelt.


    Mit diesen 3 Regeln kann ich mich durchaus anfreunden, aber die könnte gerne auch der Editor für mich durchsetzen. Ich scheine aber nicht der Einzige zu sein, der Groß/Klein schlecht zu merken findet. Die Auto-Vervollständigung ignoriert den Case sicher nicht versehentlich.

    Gibt es denn überhaupt jemanden, der sich traut, den gleichen Variablennamen zweimal zu verwenden - einmal groß geschrieben,einmal klein? Nur dann macht das Unterscheiden überhaupt Sinn... ;)


    Ich kenne durchaus Leute, denen ich das zutraue, denen übergibst Du ein Bit, und anschließend ist es kaputt :S . PHP brauchte keine Deklaration, da passierte sowas durchaus versehentlich mit komischen Konsequenzen. Das hätte echt viel Ärger erspart, wenn der Case ignoriert würde.

    Leicht OT:
    Wann in den vergangenen Jahrzehnten ist eigentlich der Trend aufgekommen, Variablen, Typen usw. gleichen Namens, aber unterschiedlicher Groß/Kleinschreibung zu erlauben? In Java fand ich es lästig, in PHP war es das Grauen, und in C# geht mir das auch schon wieder auf den Sack. Waren es BMW und FIAT oder doch bMW und fiAt? Bis ich die richtige Schreibweise gefunden habe, hab ich schon wieder vergessen, wozu ich das eigentlich brauchte. Imho unnötige ABlenkung.

    Ganz klar: nein. Es gibt die hart codierte Syntax des jeweiligen Assemblers, und wenn die Dir sagt: Keine Einrückungen, oder genau ein Leerzeichen am Zeilenanfang, wenn es kein Label ist, dann führt da kein Weg dran vorbei.

    Da ist was dran, dass viele Assembler auf dem C64 quasi einen Codestyle hart durchgedrückt haben, auch wenn der Anlass wohl eher technische Nützlichkeit war. Quelltext wurde ja nicht einfach als Textdatei behandelt, sondern vom Editor speichersparend aufbereitet.

    Für Cobol hatten wir uns in der Schule auch streng an Vorgaben auf den Formularen zu halten, allerdings vermute ich, dass das mehr so eine traditionelle Rücksichtnahme auf Lochkarten und Datenerfasser war und seit den Zeiten "besserer" Terminals oder gar PCs nicht mehr nötig war.

    In C64-Assembler am PC hatte ich mir einige Präfixe angewöhnt:
    s_ Unterprgramm
    b_ byte-Variable
    c_ Konstante
    w_ Word
    ba_ Byte-Array
    wa_ Word-Array
    So waren oft genug Fehler schon an komischen Kombinationen aus Befehl und Label zu erkennen, Arrays hatten Zugriffe mit indizierten Befehlen, Konstanten kamen mit # daher und so. Bei komplizierteren Strukturen ging das aber nicht mehr so schön auf.

    Lokale Label hab ich oft ähnlich wie Mike behandelt, die Dinger häufen sich oft dermaßen, dass sprechende Namen schwer werden oder gar die Struktur verschleiern. Würden Menschen wie Fische Eier legen, gäbe man Kindern auch keine Namen. 1 oder 2 Buchstaben + Zahl, z.B. li, re, ob un liegen mir bei eine Joystick-Abfrage mehr als eine lange Beschreibung die vielleicht noch bis in die Befehlsspalte ragt.
    Mit Namen wie "loopX" oder "CountBalls" für wichtigere Sprungziele hab ich aber keine Probleme. Wenn dann mal ein Unterprogramm doch über mehrere Seiten auswuchert, dann sind etwas sprechendere Namen für Schleifen oder andere Hochsprachen-Konstrukte doch ganz gut.