Tool zur Quelltextanalyse

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Tool zur Quelltextanalyse

      Hi Leute,
      ich habe nach einem Tool zur Quelltextanalyse gesucht, aber irgendwie nichts gefunden, obwohl ich mir sicher war, dass es sowas schon gibt. Wie auch immer, ich habe sowas schon mal geschrieben, das Programm ist ein Albtraum, weshalb ich nochmal komplett von vorn angefangen habe. Momentan kann es:
      • Kommentare ignorieren (noch keine Kommentarblöcke), bzw. entfernen
      • Zählen, ob die Anzahl von Klammern und Anführungszeichen stimmt
      • Mit ":" verbundene Zeilen aufteilen unter Berücksichtigung von Sprungmarken in ASM, Case, $I/$RES und Literalen
      • Überflüssige Leerzeichen an Zeilenanfängen, -enden und zwischen Parametern entfernen
      Geplant ist:
      • Automatische Indentation
      • Erkennung von Includes und Parsen dieser
      • Erkennung von Befehlen und Funktionen
      • Erkennung undeklarierter und doppelt deklarierter Variablen
      • Erkennung von Schleifen ohne Exit-Bedingung
      • Zählen von if/endif und Analyse, ob es Überschneidungen mit whil/repeat... gibt
      • Erstellen einer Quelltextstatistik
      • ...
      Besteht Interesse, wenn ich es soweit fertig habe? Ich würde den Quelltext zur Verfügung stellen und jeder kann es selbst anpassen oder erweitern. Ich möchte nur einen Hinweis auf die Urheberschaft haben.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Naja, der Interpreter macht ja schon vieles, bzw.
      zeigt falsch geschriebene Befehle /Funktionen
      usw. an.

      Ob sich sowas bei so geringer Mitgliederzahl lohnt.
      Die Sache mit den verbundenen Zeilen durch : würde
      ich so belassen. Ist ja Sinn und Zweck gewesen, kurze
      zusammengehörende Befehle usw. in einer Zeile im
      Blick zu haben.

      Also brauchen tue ich es eigentlich nicht.
    • Der Interpreter meckert es aber erst an, wenn er die entsprechenden Zeilen parst. Zeilen mittels : zu verbinden halte ich persönlich für eine Sünde, die den Code unlesbarer macht. Aber dafür wird es dann Optionen geben, damit das jeder anpassen kann wie er/sie will.

      Vorteil ist auch, dass Quelltexte anderer Autoren in ein für den Benutzer angenehmes Format angepasst wird.

      Aber vielen Dank für das Feedback.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Es gibt in der Tat schon was in dieser Richtung: 'Profan-Inspector' von Sebastian König. Die Entwicklung endete zwar nach Profan 11. Das Programm ist aber in gewissem Rahmen 'lernfähig', d.h. man kann auch Profan-Neuerungen einpflegen. Sehr zuverlässig in der Erkennung. Ich verwende es gern und regelmäßig.

      Nun geht das, was Du vor hast, z.T. über die reine Erkennung hinaus und soll auch noch so einiges anderes können. Auf jeden Fall ein interessantes und ambitioniertes Vorhaben, das ich mir dann gern mal ansehen werde, wenn es soweit ist. Ob man es braucht (und wenn wie viele...), sei jetzt mal dahin gestellt. Sowas macht ja auch irgendwie Spass. Also gutes Gelingen...!
      Matthias Arlt
      WinXP SP2/Win7 - XProfan 10/11/FreeProfan32 - Xpia
    • @Volkmar Genau das.
      @MaZz Ja genau, der Inspektor. Sebastian König ist ein fabelhafter Programmierer, aber leider schon seit längerem nicht mehr tätig. Deshalb denke ich es ist gut Abhilfe zu schaffen.

      Ich würde daraus gern ein quelloffenes Gemeinschaftsprojekt machen. Jeder könnte dann daran mitarbeiten. Ich mache es erstmal soweit fertig, eröffne dann einen Thread und dann mischen alle mit. :thumbsup:
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Ich habe mir damals Profan2Cpp 2.0 gekauft, habe es heute installiert, aber ich finde nirgendwo einen kompatiblen Compiler. Alle wurden entweder schon hundertmal geupdatet oder sind nicht mehr online. Falls jemand noch einen komptaiblen Compiler rumliegen hat wäre ich sehr dankbar dafür.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • 1. Nein
      2. Ja

      Ich hab inzwischen ein Borland C++ 5.5 runterladen können, das funktioniert. Muss aber noch ein bisschen testen.

      Derweil kommt das Tool ganz gut voran: Indentierung klappt, Compilerschalter werden erkannt, Schleifen und Bedingungen werden geprüft, auch auf ungültige Verschachtelungen. :-)
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Ja, hört sich gut an.

      ---

      StartPrint - EndPrint dürfte ein Problem werden. Da sind die Grenzen sehr weit gesteckt.

      Ich hatte für dBase/Clipper mal ein Tool, das Variablen zählen und Initialisierungen erkennen konnte. Und noch so einige Spielereien.
      Es hat auf jeden Fall geholfen, auch wenn es etwas zu viel konnte. Objektorientierung gab es da noch nicht.

      Die Codeschnipsel bestanden aus zahllosen PRG-Dateien. Und da war es schon sehr übersichtlich wenn man wusste, wo denn nun die Variable initialisiert und
      in welchen Modulen sie überall verwendet wird.


      Eine Variablenauflistung wird vielleicht bei einigen Programmierern dann mal zum Umdenken führen.
      Wenn man die ganzen i, j, temp, ... sieht und sich dann fragt, wofür die in der jeweiligen Proc wohl so zuständig sind.
      Programmieren, das spannendste Detektivspiel der Welt.
    • Michael Wodrich schrieb:

      Ich hatte für dBase/Clipper mal ein Tool, das Variablen zählen und Initialisierungen erkennen konnte.
      War damals das beste, bzw. schnellste.
      Hatte damals (1989) das auch lernen müssen.
      Halbjährige Arbeitsamt - Maßnahme zum PC-Programmierer.
      Ist aber leider nur als Hobby geblieben. Beim Bewerbungs-
      Gespräch in den Firmen hat so mancher müde darüber
      gelächelt. Die hatten vielfach UNIX + COBOL Programme
      am laufen.
    • dBase half aber beim Verständnis dafür wie Datenbanken arbeiten.

      Ich habe später die dBase-Struktur erst in Turbo Pascal und später dann in Assembler nachgebildet
      um Daten schneller in die Datenbank zu bekommen (Datenlogger).

      Das einfache dBase war einfach simpel und schnell zu verstehen.

      Wo wir gerade bei Datenbanken sind. Ich werkel gerade ein bischen im Scripting Host. Der nutzt ganz offensichtlich SQL für einige Systemabfragen.
      Warum hat MS es bis heute nicht geschafft, die Dateistruktur auf eine simple Datenbank abzubilden und per SQL die Dateianfragen zu bearbeiten.
      Wir suchen uns stundenlang einen Wolf und SQL würde das im Millisekunden-Bereich bearbeiten. Ich würde gerne auf einen SQL-Server verzichten.
      Es geht auch mit ganz simplen kleinen Datenbanken - Firebase (wegen Verschlüsselung) z.B. wäre doch etwas.
      Programmieren, das spannendste Detektivspiel der Welt.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Michael Wodrich ()