Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stack Programmierung (https://www.delphipraxis.net/88452-stack-programmierung.html)

himitsu 17. Mär 2007 12:39

Re: Stack Programmierung
 
Wenn du die größe des Arrays gut verwlatest, dann ist dieses besser.
andere/viele Stackklassen arbeiten so.


z.B. der Stack in deinem Delphi, welcher die lokalen Variablen, Prozedurrückspungpunkte und Dergleichen speichert, ist mit einer festen Größe definiert.

Es wird nur einmal Speicher reserviert und dann über einen Zeiger auf die aktuelle Stelle gezeigt.

Schneller gehts nicht, da dort kein Speicher verwaltet/geändert werden muß, aber es kann passieren daß der Stack mal überlauft (EStackOverflow).

bei einer verkettenten Liste wird für jeden Eintrag eigener Speicher reserviert/freigegeben.

es muß demnach nicht der gesaemte Stack koiert werden, wenn der Stack die Größe ändert, aber eben bei jedem push/pop wird ein Stück Speicher freigegeben.

Das Array (nonaml) kopiert bei Größenänderung oftmals den gesamten Stack um.

Das Array (wenn gut verwaltet) ist wie der "feste" Stack und ändert seine größe nur ganz selten ... also nur wenn Stack voll und eventuell auch wenn zuviel frei ist.

Preddy2005 20. Mär 2007 11:45

Re: Stack Programmierung
 
Nach ein paar Tagen bin ich mal wieder dazu gekommen mich zu melden.

Habe mir mal ein paar Anleitungen zum Thema Compilerbau runtergeladen.

Sehr interessant finde ich z.B. das von Wirth verfasste Dokument, in welchem nach und nach die Sprache Oberon vorgestellt wird.
Nur habe ich leider ein Problem : Alles pure Theorie.

Ich habe absolut keine Ahnung in welche Art und Weise ich BNF und EBNF praktisch einsetzen kann.
Kann mir jemand ein paar gute Suchbegriffe nennen mit denen ich Erfolg habe oder auf einen guten Thread verweisen?

Und bitte nicht schon wieder fertige Parser... Werde mich die Tage auch mal an die Implementierung mit dem dynamischen Array machen, weil das nicht schlecht sein soll.

Vielen Dank schonmal für eure Ratschläge, werde euch wohl noch ein bisschen quälen müssen... :-D

Gruß Matthias


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz