Aktuelle Zeit: 22.08.2019 06:47

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 100 Beiträge ]  Gehe zu Seite Vorherige  1 ... 5, 6, 7, 8, 9, 10  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: Tutorial - Compiler und Virtual Machine (nicht beschreib
BeitragVerfasst: 15.10.2013 23:15 
Offline
Benutzeravatar

Registriert: 06.09.2013 22:02
Ich weiß zwar nicht, was einen daran nerven kann, ein gratis Tutorial auf Deutsch zu bekommen, aber bitte, jeder Mensch hat seine eigenen subjektiven Empfindungen.

Doch glücklicherweise muss ich nicht "normal" schreiben, was immer auch normal ist, ich muss im Grunde nämlich überhaupt nicht schreiben.

Danke, dass du dich nicht daran gehalten hast, hier nicht reinzuschreiben. Man sieht, du hast keine Vorstellung, wie viele Tage Arbeit - Untertreibung: mittlerweile Wochen - dahintergesteckt sind. Stundenlange Versuche so zu formatieren, dass es übersichtlich wird.
Versuche, schöne Ascii-Art zu machen.

Wenn es wenigstens im Diskussionsthread gewesen wäre, aber dort schreibt ohnehin niemand etwas.

Aus diesem Grund glaube ich langsam, dass meine Mühen ohnehin keinen interessieren.

Wenn es euch wirklich so sehr nervt, dann werde ich meine Arbeit beenden.

Nicht nur deswegen, sondern auch weil seit einiger Zeit sowieso kein Feedback kommt und niemand etwas schreibt und ich glaube, dass es ohnehin niemand mag, bedanke ich mich bei allen, die es interessiert hat, und verabschiede mich.

Liebe Grüße, euer Puretom.

P.S. Hat mir bisher viel Spaß gemacht. :cry:

_________________
Windows 7 und Windows 10 (Laptop), PB 5.62 | Projekt: Tutorial - Compiler und Virtual Machine | vielleicht einmal ein Old School Text-Adventure Tutorial | Neu: Spielereien, Üben rund um OOP in PB


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: GELÖSCHT
BeitragVerfasst: 15.10.2013 23:28 
Offline

Registriert: 13.11.2011 16:05
GELÖSCHT


Zuletzt geändert von mirca am 17.10.2013 12:11, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Tutorial - Compiler und Virtual Machine (nicht beschreib
BeitragVerfasst: 15.10.2013 23:30 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
mirca hat geschrieben:
Warum musst du immer alles GROSS SCHREIBEN oder übertriebene
Formatierungen
nutzen? Kannst du bitte normal schreiben wie jeder andere und nicht die Formatierungen
als N*tte missbrauchen?
Und warum erstellst du Platzhalter Beiträge die du später durch Code ersetzt? Macht es Sinn? Kannst du dein Code nicht
einfach dann posten wenn es fertig ist? Es nervt sorry!

Ist dir langweilig? Da ist jemand produktiv und will etwas für die Allgemeinheit tun und formatiert sogar noch alles sehr übersichtlich und dann kommt wieder einer, der sich daran stört. Dann ignoriere den Thread in Zukunft eben und gut ist. Oder halte dich wenigstens daran und mecker im richtigen Thread und nicht in dem Tutorial-Thread selbst. Danke.

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Tutorial] Compiler und Virtual Machine
BeitragVerfasst: 16.10.2013 00:16 
Offline
Benutzeravatar

Registriert: 25.03.2008 15:07
Wohnort: 's Ländle
Also es ist unglaublich! Ich Trottel habe es dezent per PN an Mirca versucht... hat nicht einmal reagiert.
Die kindliche Ausdrucksweise und das Trotzverhalten ist zwar fast schon amüsant, trotzdem muss hier auch die Moderatoren kritisieren: So ein Vollpfosten gehört direkt gebannt! :wink:

@puretom: Ich fände es unglaublich schade, wenn Du Deine Arbeit einstellen würdest! Da Dir das Feedback fehlt gebe ich nochmal ein kleines: Das Tutorial ist (zumindest für Hobbyprogrammierer wie mich) wahnsinnig interessant, aber schwere Kost. Du schreibst (sozusagen) schneller als ich lesen kann! Daher hatte ich nur zu Beginn ein "flaches" Feedback gegeben. Ich vermute es geht vielen hier ähnlich. Ich fühle mich einfach überfordert ein inhaltliches Feedback zu geben. Optisch ist alles ansprechend und die Texte sind gut strukturiert! Das ist eins der engagiertesten und Projekte seit langem! Auch wenn Du das Projekt aufgeben solltest, so hättest Du meiner Meinung nach Dir selbst schon ein virtuelles Denkmal gesetzt! Daher einfach mal Danke! :allright:

_________________
PureBasic 5.70b1 x86/x64 | Windows 7 (x64) | Windows XP (x86)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Tutorial] Compiler und Virtual Machine
BeitragVerfasst: 16.10.2013 00:19 
Offline
Benutzeravatar

Registriert: 10.09.2004 20:51
Wohnort: Ansbach
Von mir auch ein :allright:
Ich finde die Formatierung im übrigen gelungen.
Ich finde das Thema sehr interessant, da ich aber noch keine Zeit hatte mich rein zu vertiefen habe ich bisher kein Feedback gegeben.

Weiter so!

LG KeyKon

_________________
(\/) (°,,,°) (\/)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Tutorial - Compiler und Virtual Machine (nicht beschreib
BeitragVerfasst: 16.10.2013 07:20 
Offline
-= Anfänger =-
Benutzeravatar

Registriert: 29.08.2004 03:07
puretom hat geschrieben:
Nicht nur deswegen, sondern auch weil seit einiger Zeit sowieso kein Feedback kommt

Im Moment wird da noch zu viel umgebaut, was soll man da Feedback geben,
wenn man schon weiss das Du es dann sowieso noch ändern musst? ;)

Beispiel: Am Anfang hattest Du Expressions direkt in der ersten Ebene des Parsers,
also wurde "1+2*5" korrekt erkannt und übersetzt. Am Ende hat dieser Code aber
alleinstehend keinen Sinn, da es kein Ziel für das Ergebnis gibt ("x = 1+2*5" wäre korrekt).
Von daher ersparte ich mir Feedback dazu, da ich wusste dass Du das eh noch ändern musst
und wirst.

Ich denke bisher, man könnte einige Sachen evtl. etwas umschreiben um sie lesbarer und leichter
verständlich zu machen. Im Moment habe ich nicht so viel Zeit einen kompletten Scanner und Parser
für Toy-C anders zu schreiben und aufzubauen (dauert 2-3 Tage), da ich mit anderen Aufträgen zu tun habe.
Würde mich zwar reizen, da mir so etwas mehr Spass macht, aber das Andere hat momentan Priorität.
Vielleicht also am Ende, wenn ich dann Zeit und Lust habe. Aufgeben ist die einfachste Variante,
also würde ich es besser finden, wenn Compiler und virtuelle Maschine benutzbar und brauchbar sind
und Du weiter machst wie bisher. Wenn es dann fertig ist treten nicht mehr so viele Änderungen auf und man kann
evtl. ein paar Dinge diskutieren oder alternative Wege aufzeigen.
Insgesamt ist das Tutorial aber eher für die Leute, die davon lernen wollen. Diese können vielleicht
Fragen haben, wenn sie am Ende etwas nicht verstehen, aber grossartiges Feedback in Form von
Hilfestellung werden sie Dir kaum geben können. Du bist der Lehrer, und Deine Schüler können kaum
mehr sagen als "Danke, bitte weiter so" - und das haben Einige schon getan, die nun weiter gespannt mitlesen.
Also enttäusche Deine Fans nicht und mach einfach weiter wie bisher... bis zum Ende dauert es bestimmt noch
ein paar Tage. ;)

Wen die Änderungen und zwischendrin-Formatierungen stören, der sollte es einfach ignorieren und abwarten
bis es dann fertig ist. Geduld üben ist auch eine interessante Aufgabe. ;)

_________________
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Tutorial - Compiler und Virtual Machine (nicht beschreib
BeitragVerfasst: 16.10.2013 09:09 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
Danilo hat geschrieben:
Geduld üben ist auch eine interessante Aufgabe. ;)


Wie wahr, wie wahr.... Also puretom : :praise: Weitermachen

_________________
PureBasic 5.70 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Tutorial] Compiler und Virtual Machine
BeitragVerfasst: 16.10.2013 18:18 
Offline
Benutzeravatar

Registriert: 06.09.2013 22:02
Liebe Leute!

Zuerst: Danke für den Zuspruch! Danke euch allen wirklich für die Motivation!

Ich freue mich wirklich, wenn ich die Sache nicht umsonst mache, obwohl sie für sich schon Spaß macht.


@Danilo:

    Danilo hat geschrieben:
    Ich denke bisher, man könnte einige Sachen evtl. etwas umschreiben um sie lesbarer und leichter
    verständlich zu machen.
    [...]
    Wenn es dann fertig ist treten nicht mehr so viele Änderungen auf und man kann
    evtl. ein paar Dinge diskutieren oder alternative Wege aufzeigen.
    Ich hoffe, dass ich die Sache jetzt nicht[...]
    Insgesamt ist das Tutorial aber eher für die Leute, die davon lernen wollen. Diese können vielleicht
    Fragen haben, wenn sie am Ende etwas nicht verstehen, aber grossartiges Feedback in Form von
    Hilfestellung werden sie Dir kaum geben können. Du bist der Lehrer, und Deine Schüler können kaum
    mehr sagen als "Danke, bitte weiter so" - und das haben Einige schon getan, die nun weiter gespannt mitlesen.

    Natürlich hast du vor allem mit deinen letzten Zeilen recht, sicherlich ist es für die Leser kaum bis gar nicht möglich, sinnvolles Feedback zu geben.

    Ich habe aber die Form eines Forums-Tutorials gewählt, weil ich mir natürlich menschlichen wie fachlichen Austausch und auch Anschluss an eine Gruppe ähnlich Interessierter erhofft habe, für mich übrigens ein Riesenschritt, ich habe weder eine private Mail noch gibt es mich in Facebook. Habe also die Sache mit dem sozialen Netzwerkzeugs immer verweigert.
    Doch irgendwie hatte ich plötzlich Lust, mich etwas mehr mit Menschen auszutauschen.
    Und jetzt sitze ich doch wieder im stillen Kämmerlein und schreibe meine Texte.
    Und das hat (@Mirca) nichts mit
    Mirca hat geschrieben:
    Warum fängst du mit "niemand magt mich - jeder ignoriert mich" wieder an?
    zu tun, sondern mit dem Ziel, das Tutorial im AUSTAUSCH mit anderen Menschen zu schreiben, sonst hätte ich es ja als Word zuhause machen können und auf der Platte herumliegen lassen können.

    Daher weht also der Wind bei mir, erhoffte mir fachliche Diskussionen, alternativen Input und neues Wissen und natürlich auch sozialen menschlichen Austausch.
    Nach dem Motto "Zeig ich dir meins, zeigst du mir deins" möchte ich von den Kollegen hier lernen und an Wissen alles erwerben, was es gibt.

    Und ich bin mir sicher, dass man einiges besser machen könnte als der für mich legendäre Jack Crenshaw, der für einen alten Mann wie mich :) immer noch Pascal-Gigant Niklaus Wirth und Varanese, die ja die Vorbilder für diese Scanner- und Compilertechnik sind, die ich mit eigenen Verfeinerungen und vor allem Vereinfachungen für das Tutorial wiederzugeben versuche.

    Nun! Du hast aber recht, was sollen die Leser schon groß schreiben, vor allem wenn das Zeug noch nicht fertig ist. Verstehe ich vollkommen. Das muss ich einsehen.


@alle:

    Das mit der Formatiererei ist so ein Sache. Ich möchte meine Beweggründe erklären.

    Allen ist sicher schon aufgefallen, dass ich versuche, das irgendwie in Form eines echten Buches, also mit Kapiteln und Unterkapiteln und Teilen usw, aufzubauen, weil ich das - und für mich nur so - eben nicht chaotisch finde. Tut mir leid, wenn das jemanden nervt.
    Anders verliere ich aber den Überblick und wenn man ehrlich zu sich ist, ein solches Monsterprojekt muss gegliedert werden, wenn alles in einer Wurst (wie man bei uns sagt) ist, dann kennt sich niemand, nicht mal der Autor selbst :lol: , mehr aus

    Des Weiteren möchte ich BEWUSST NICHT wochen-, vielleicht monatelang mein Ding im stillen Kämmerlein durchziehen und dann das fertige Produkt posten. Da könnte ich ein PDF auf eine HP laden, und aus!
    Sondern es macht mir Spaß, euch den Erzeugungsprozess live mitmachen zu lassen, mit allen Irrtümern, Fehlern, Verbesserungen, WEIL ES MIR SO SPASS MACHT.
    Und gratis mache ich so eine Arbeit nicht! Der Preis: Spaß, Befriedigung, Austausch, schöne Stunden, was auch immer!
    Ich denke, es geht jedem hier so, dass er stolz ist, wenn andere sein Werk anerkennen, auch wenn man über Irrtümer, Bugs, Verbesserungsalternativen usw. diskutieren kann.

    Sollte das jemanden nerven und sogar verboten sein (Mirca meinte ja (allerdings in einem Posting, das nur kurz online war und dann wieder verschwand), man hätte mich woanders schon gebannt! Naiv-Modus an :oops: -> Warum eigentlich? ), dann ist vielleicht ein Forum nicht die richtige Plattform für so ein Projekt und man müsste es irgendwie anders machen. Das klingt jetzt naiv, ist aber für mich nicht so klar.

    Außerdem hatte ich den Eindruck, dass die Extremformatierungen usw. sich eigentlich nur auf den ersten Fehlversuch beschränken und ich mich im neuen Tutorial mehr dabei gebremst habe (Ich neige nämlich schon dazu, recht viel zu formatieren, obwohl gerade das Nachformatieren die so richtig zusätzliche Arbeit ist.) Darum verstehe ich die extreme Aggressivität nicht, die ich so in der Form eigentlich nicht erwartet hätte hier im Forum, aber ich will das nicht schon wieder beginnen, beenden wir das Streitthema endgültig, weil ich mehr Energien für das aufwenden muss als für das Tut-Schreiben, und jetzt ist's gut damit!



Ah! Fast vergessen, eine fachliche Sache noch (EINER DER GRÜNDE FÜR MEIN FORUMSENGAGEMENT, Streitereien sind nämlich Energieverschwendung):

@Nochmal Danilo:
    Danilo hat geschrieben:
    Beispiel: Am Anfang hattest Du Expressions direkt in der ersten Ebene des Parsers,
    also wurde "1+2*5" korrekt erkannt und übersetzt. Am Ende hat dieser Code aber
    alleinstehend keinen Sinn, da es kein Ziel für das Ergebnis gibt ("x = 1+2*5" wäre korrekt).

    Ich meinte mit meinen Ausführungen eine reine Expression, also keine Zuweisung, wie z.B. in:
    Code:
    if_statement = "if" "(" expression ")"  statement ;
    while_statement = "while" "(" expression ")" statement;
    u.s.w.

    Ich weiß, manche unterscheiden hier noch Condition() (oder so), aber da ich mixed Operations wie in C erlaube, kann jede Expression eben ohne Ziel in einer Bedingung (Condition) stehen.
    Das Ziel ist also da, aber es ist sozusagen der Top of Stack, d.h. am TOS liegt dann das Ergebnis der Expression für die Weiterverarbeitung durch einen Condition-Test und nicht durch Pullen in eine Variable:
    Code:
    Source:

    if ( b < 2 ) print(b)


    ASM-Code:

       ipushg b  // natürlich der Index der Variable
       ipushc 2
       ilt       // CONDITION-TEST statt z.B. "ipullg x"
                 // kleiner als (lt=lower than) - Ergebnis der
                 // Expression (true oder false) liegt danach am Stack
       
       JF LABEL  // überspringe True-Teil, wenn "b<2" falsch war
                 // jf=Jump if False     
       
       ipushg b  // TRUE-TEIL:
       print     //   print(b)

    [LABEL]      // FALSE-TEIL
    Die Expression hat also als implizites Ziel einen Condition-Test statt einer Variablen.
    Das ist im Tut nicht rübergekommen, was ich da erklären wollte?

So! Ein etwas langes Posting :oops: !

LG Puretom

_________________
Windows 7 und Windows 10 (Laptop), PB 5.62 | Projekt: Tutorial - Compiler und Virtual Machine | vielleicht einmal ein Old School Text-Adventure Tutorial | Neu: Spielereien, Üben rund um OOP in PB


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Tutorial] Compiler und Virtual Machine
BeitragVerfasst: 21.10.2013 20:06 
Offline
Benutzeravatar

Registriert: 06.09.2013 22:02
So! Jetzt würde ich eure Hilfe gebrauchen können!

Bin gerade dabei, die Virtual Machine zu erstellen.

Ich möchte diesmal etwas Neues ausprobieren und alles in einen Memorybereich laden und dann mittels eines Program Counters (PC) wie ein echter PC ansprechen.

In meinen anderen VMs (ist ja nicht meine erste :wink: ) hatte ich alles in einem Array mit Strukturen usw., die ich dann mit dem PC durchgewandert bin.
Hat auch sehr gut funktioniert.
Mit der Direkt-Memory-Methode lässt sich aber das EXE schnell und direkt laden, ohne eine Loader-Prozedur, die mir das Programm aufteilt in Code-Bereich, String-Konstanten-Pool, Parameterunterscheidung in Struktur usw., was Arbeit ist und auch seine Zeit braucht.


Ich möchte also im Prinzip gerne bei dieser Umsetzungsart bleiben (abgesehen von einer Sprungleiste mit ASM am Ende für den Speed statt der Select-Case-Struktur, aber darum geht es jetzt mal nicht).

  • Ich frage mich, ob die Sache mit Memory überhaupt schneller ist als High-Level-Datentypen und -strukturen (insb. strukturierte Arrays)?


Ich bin außerdem ein ganz schlechter "Pointerer"! Bin eher so der typische High-Level-Basic-Typ, der mit Pointern sehr sparsam umgeht, vor allem auch mangels eigenen Könnens in diesem Bereich.

Hier ein Schnippsel meiner Fetch-Execute-Schleife der VM:
Code:
      While ( Opcode <> #end )     
   
         
          Select Opcode
         
         
          Case #spushc             
             
              *PC+4                     ; PC auf String-Länge       
              sLen=*PC\l                ;      - holen
              *PC+4                     ; PC auf String
              sPara.s = PeekS(*PC,sLen) ;      - holen
              sPush(sPara)              ; String auf Operanden-Stack
              *PC+sLen-4                ; PC auf nächsten Opcode
 

          Case #lprint
         
              sPull(sPara.s)            ; String vom Operanden-Stack
              Print(sPara)              ; Ausgabe in Konsole


          Case #nprint
              sPull(sPara.s)
              PrintN(sPara)           


          EndSelect         
             
         
        ; PC + 4
          *PC + 4 
         
        ; hole nächsten Opcode
          Opcode = *PC\l
         
      Wend


Kurze Erklärung:

Der Standardbefehl ist ein Long, das muss nicht so bleiben (wird ev. Unicode oder gar nur ein unsigned Byte aka. Ascii), aber darum geht es nicht, soll nur die *PC+4 erklären.

Nehmen wir den Opcode #spushc:

Code:
Der liegt so im Speicher:

spush "Hallo Welt"

01 00 00 00         0B 00 00 00         48 61 6C 6C 6F 20 57 65 6C 74 21
'---------'         '---------'          H  a  l  l  o     W  e  l  t  !
 = 1            = Länge des Strings
 = Opcode:      = 11 Zeichen
   spushc   


  • Den Opcode hole ich mit: Opcode = *PC\l
  • Die Länge des Strings hole ich mit: *PC+4: sLen=*PC\l
  • Den String selbst mit: *PC+4: sPara.s = PeekS(*PC,sLen)

Die Sache funktioniert. Ich habe schon eine Ausgabe des Textes auf Konsole korrekt erreicht.

Also meine Frage:

  • Ist das sehr umständlich mit den Pointern?
  • Alternative zu PeekS() ? Ganz wichtige Frage für mich!
  • Gibt es da überhaupt bessere Varianten, die aber für das Tut nicht zu unübersichtlich werden?
  • Meine Pointersache, ist die überhaupt korrekt so ? Ich bin bei Pointern immer unsicher.


Danke!

LG Puretom

_________________
Windows 7 und Windows 10 (Laptop), PB 5.62 | Projekt: Tutorial - Compiler und Virtual Machine | vielleicht einmal ein Old School Text-Adventure Tutorial | Neu: Spielereien, Üben rund um OOP in PB


Zuletzt geändert von puretom am 21.10.2013 20:29, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Tutorial] Compiler und Virtual Machine
BeitragVerfasst: 21.10.2013 20:16 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
puretom hat geschrieben:
[*]Alternative zu PeekS() ????? Ganz wichtige Frage für mich!!!!

Da Deine Strings nicht nullterminiert sind, werden die "normalen" Alternativen nicht funktionieren,
da diese keine Längenangabe verarbeiten.

Gruß
Thomas

_________________
PureBasic 5.70 | SpiderBasic 2.21 | Windows 10 Pro (x64) | Linux Mint 19.2 (x64)
"Die Jugend von heute mit ihren Ballerspielen, hocken nur in der Bude - wir haben früher die Leute noch draußen erschossen!"
Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 100 Beiträge ]  Gehe zu Seite Vorherige  1 ... 5, 6, 7, 8, 9, 10  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye