8-Bit-Nirvana Startseite  
?CPU FEELS BORED ERROR IN 6970
[ Home | Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info ]

8-Bit-Forum

"Re: Atari will meistens, kann aber selten" von Sascha Hoogen
(27.12.2001, 17:09)

(Dieser Artikel wurde 976 mal aufgerufen)

Bezugsnachricht: Re: Atari will meistens, kann aber selten (Andre)
Antworten: Re: Atari will meistens, kann aber selten (Andre)

[ Antwort schreiben | Übersicht | Thema ]

Andre schrieb am 27.12.2001, 14:26:

> > Der Vorteil bei Commodore ist aber dafür der, daß man
> > die Länge des Strings nicht definieren muß, der kann während des Programmlaufs
> > jederzeit kleiner (das geht bei Atari auch) oder größer werden
>
> Moment mal, dann muß der C mit der Fahne ja dynamisch Speicher allokieren;
> ich könnte mir vorstellen, daß sowas den Interpreter sehr verlangsamt bzw. zu
> unerwünschten Fehlermeldungen (Speicher voll) führen kann. Finde ich
> programmtechnisch sehr unklug.

Das funktioniert so: Basic-Programm und Variablen teilen sich denselben
Speicherbereich, das Programm ist unten angesiedelt und wächst nach oben,
die Variablen (allen voran die Stringvariablen) wachsen von oben nach
unten. Wird eine Stringvariable verändert, läßt das Betriebssystem einfach
den alten Inhalt als Leiche im Speicher stehen, belegt einen neuen Bereich
für den neuen Inhalt und setzt einfach die Pointer auf diese neue Adresse.
Vom Optimizer-Standpunkt aus gesehen die reine Verschwendung, dafür
funktioniert es aber sehr gut und vor allem: dynamisch, was durchaus von
Vorteil ist. Wenn der Speicherplatz zwischen Basic- und Variablenbereich
zu knapp wird, führt der Rechner eine Garbage Collection durch, der Name
sagt eigentlich schon alles, denn dabei werden die alten Stringleichen
entfernt und die aktuellen Strings neu geordnet. Das wirklich Dumme daran
ist, daß es bei sehr viel Speichermüll z.T. wirklich lange dauert. Ein
geübter Programmierer wird das aber umschiffen oder zumindest wesentlich
herauszögern, indem er entweder die Strings so konstant wie möglich hält
oder das Programm in bestimmten Zeitabständen eine Garbage Collection
erzwingen läßt. This is optimizing, baby! ;)

Und bevor Du jetzt rumjubilierst, weil wir so eine schlimme Garbage
Collection haben: So schlimm isse nicht. Ich habe die nur sehr selten
erlebt, obwohl ich reichlich Basic und Strings geknechtet habe. :)

> > Und um mal wieder klare Verhältnisse zu schaffen, nimm dies: DIM A$(10,10,10)
> > Na, kann Dein Atari auch mehrdimensionale Stringarrays? ;)
>
> Nö, wozu auch.

Ist klar, was man nicht hat, das braucht man auch nicht. ;)

> Wenn man A$(n,m) beispielsweise auf einen eindimensionalen String A$ der
> Länge >=m anwendet, kann man schön einzelne Teile des Strings (nämlich alle
> Elemente n bis m) abrufen.

Mooooment mal, Du vergißt, daß es sich gar nicht wirklich um einen universellen
String wie bei Commodore handelt, sondern tatsächlich um ein eindimensionales
Array von Einzelzeichen! Das ist schon ein Unterschied, weil Dir dadurch
echte Stringarrays [1] (egal, wieviele Dimensionen) gar nicht erst ermöglicht
werden.

[1] Also Arrays, bei denen jedes Element wirklich ein echter String und nicht
nur ein einzelnes Zeichen ist.

> Na, kann das Commorore-Basic das auch so einfach, hm?

Commodore-Basic kann das nicht nur so einfach, sondern sogar spezialisierter:

LEFT$(A$,m)
MID$(A$,n,m)
RIGHT$(A$,m)

Ätschibätschi! :)

> Wie bringt denn ein Commodore-User mal einen längeren Text als 255 Zeichen
> unter, na?

Zur Not könnte er sich ein eindimensionales Array anlegen und in jedem
Feld jeweils nur ein Zeichen speichern, das würde ungefähr dem entsprechen,
was der Atari hat. Aber warum sollte man sich unnötig kastrieren? ;)

> Da muß dann wohl eine Vielzahl von Strings oder ein Feld her - das ist doch
> wohl viel komplizierter zu verwalten, nicht wahr?

Wenn ich tatsächlich so große Strings benötigen würde, kämen die direkt in
den Speicher, dafür würde ich keine Variable bemühen. Aber die Optionen
mit Stringverkettung oder dem Array gibt es natürlich auch.

> > PS: Sachen wie "ERROR- 9 AT LINE 20" sind genau das, was mich beim Atari-Basic
> > am meisten aufregt. Selbst die Commodore-Floppies bringen Fehlermeldungen im
> > Klartext!
>
> Ja, nachdem sie 3 Stunden gebraucht haben, um bis zum entsprechenden Sektor
> vorzudringen ;))))))))))))))) Da bin ich mit Atari-Fehlermeldung und
> nachschlagen noch zehnmal schneller.

Willze´n Stechen? ;)

Atari ist vor allem in Sachen Fehlermeldungen einfach hinter dem Mond, was
Benutzerfreundlichkeit angeht, damit wirst Du leben müssen. Und viel Spaß
beim Nachschlagen oder Auswendiglernen, während bei uns sogar die Floppy
wieselflink im Klartext mit uns meckert! :)

Tschö,
Sascha



Lesezeichen für diesen Beitrag: del.icio.us del.icio.us Bei Mister Wong speichern Mister Wong Seite bei LinkARENA speichern LinkARENA Digg it Digg Slashdot it Slashdot StumbleUpon StumbleUpon


Antwort schreiben

Hier kannst Du auf die angezeigte Nachricht antworten. Beachte bitte die folgenden Punkte:
  • Dieses Forum befasst sich ausschließlich mit 8-Bit-Computern und Videospielen, Artikel zu anderen Themen sind off-topic und unerwünscht (für Computer mit mehr als 8 Bit gibt es hier aber auch ein eigenes Forum). Wenn der Vorschreiber schon vom Thema abweicht und Du unbedingt antworten möchtest, dann schreibe ihm lieber per e-mail.
  • Schreibe bitte so, dass sich niemand beleidigt oder angegriffen fühlt, auch wenn der Vorschreiber sich bereits im Ton vergriffen haben sollte. Solche Sachen löst man eh besser privat per e-mail.
  • Im Eingabefeld wird der komplette Text zitiert. Kürze die Zitate bitte so weit wie möglich, damit unnötiger Ballast vermieden wird. Hinweise zu richtigem und falschem Quoting findest Du hier: learn.to/quote.
Name:
E-mail:
Betreff:
Antwort:
Klicke bitte das Feld links an, falls Du Antworten auf diese Nachricht auch per E-mail bekommen möchtest.


       

Achtung: "SPAMFALLE" heißt nicht ohne Grund so, keinesfalls benutzen!



Mozilla Sidebar Opera Sidebar RSS 0.91 Newsfeed RSS 2.0 Newsfeed Add to Google Add to MyYahoo Spam Poison
Mozilla Sidebar Opera Sidebar RSS 0.91 Feed RSS 2.0 Feed Add to Google My Yahoo! Spam Poison

[ Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info | Impressum/Datenschutz | News | Credits | Webmasters | Seitenanfang ]