Seite 2 von 6

Verfasst: 29.09.2004 11:39
von Froggerprogger
... PureBasic ist der Sprache C von seinen Grundeigenschaften her seeehr ähnlich. (die meisten Unterschiede liegen nur bei den Grundsymbolen (besonders den Keywords und den Sonderzeichen), sowie den Literalen (Zahlwertbeschreibungen))

Gemeinsamkeiten:
imperative Sprache:
Wichtigstes Merkmal: es exisitieren Variablen mit Zuweisungsoperationen. (in funktionalen und logischen Sprachen kann man Variablen keine Werte zuweisen, sondern nur Zusammenhänge und Wertebereiche modellieren)

prozedural:
Im Gegensatz zu 'objektorientiert'. Es lassen sich also keine abstrakten Datentypen ('Klassen' von Variablen und Funktionen, welche sich als Ojekte instanzieren lassen) bilden.

Funktionsparameterübergabe per call-by-value (es wird eine Kopie des Wertes im Funktionsaufruf in der Funktionsparametervariablen gespeichert, welcher im Funktionsrumpf auf verändert werden kann, aber sich nicht als Rückgabewert eignet.
call-by-reference ist über Pointer simulierbar

keine schachtelbaren Funktionen (keine Funktionsdefinitionen innerhalb von Funktionen)

nur Funktionen erster Ordnung (keine Funktionsaufrufe in den Signaturen.)

Uneingeschränkter Speicherzugriff, also auf sämtlichen vom Betriebssystem 'erlaubten' Speicherplatz kann stets zugegriffen werden.

nicht ganz streng typisiert (Eine Typprüfung findet zwar stets zur Übersetzungszeit statt, aber es lassen sich per 'undiscriminated Union' (StructureUnion) oder Peek/Poke Werte uminterpretieren.

keine Polytypen/polymorphe Funktionen oder generische Definitionen

C-Verdeckungsregel für alle Namensräume (Variablennamen/Funktionsnamen gelten von der Stelle der Definition abwärts bis zum Ende des kleinsten sie umgebenden Abschnitts (Im Unterschied zu C gelten Schleifen aber nicht als eigenständige Abschnitte))
Nur für Sprungmarken gilt die Algol-Verdeckungsregel (Ihr Bezeichner gilt vor und nach der Definition im gesamten umgebenden kleinsten Abschnitt.)

Es gibt einen Debugger als Testhilfe

Grundtypen:
- Ausschnitte aus ganzen Zahlen (byte, word, long, PB nur signed und 32Bit)
- Wahrheitswerte werden durch Zahlen dargestellt (kein eigener Typ)
- Zeichen eines Zeichensatzes (in PB = byte)
- Aufzählungstypen (Enumeration)
- Ausschnitte der reellen Zahlen (PB nur float)

Übersetzung findet folgendermaßen statt:
Source / Quellmodul inkl. Präprozessoranweisungen -> [ Präprozessor (in PB sehr rudimentär, wohl nur Konstanten- und Includeersetzungen) ] -> Quellmodul -> [ Übersetzer/Compiler ] -> binbarer Modulcode -> [ Binder ] -> ausführbarer Maschinencode.

sowie bestimmt noch mehr...
[ Ich wollt damit nicht prollen, sondern schreibe am Freitag eine Klausur über "Grundlagen der Programmiersprachen", deswegen ist diese Frage ein gefundenes Fressen, um ein paar Begriffe anzuwenden ;-) ]

Außer der besondern Stärke von PB, Inline-ASM einbinden zu können, zeichnet es sich besonders dadurch aus, dass einfach eine Unmenge von Funktionspaketen mitgeliefert werden. Ob Netzwerkbefehle, Stringoperationen, Fenstererstellung inkl. Gadgets, ...uswusw..., 2D, 3D-Drawing, alles wird mitgeliefert. Bei C muss man sich (soweit ich weiß) für jede Funktion, die über ein Mindestmaß hinausgeht, von irgendwoher (manchmal kostenpflichtige) Libs dazuholen, oder eben alles selber machen.



[edit]
hier der Link zu den 'Blobs' von NicTheQuick:
http://www.robsite.de/php/pureboard-arc ... php?t=5485
[/edit]

Verfasst: 29.09.2004 14:46
von Uber-Pea
Also, bei den zwei letzten links sagt mir pb das die nummer der parameter falsch ist...

Und falls ich vergessen habe es zu sagen, ich bin Anfänger, ich kann mit einigen Begriffen nix anfangen, also nach Möglichkeit bitte häufige Begriffe nehmen...

Greetz, GIGAX

Verfasst: 29.09.2004 15:41
von Zaphod
@froggerprogger:

uiuiui... viel glück bei der klausur.
das mit den c/c++ libs kann man so nicht sagen. für jede funktion die pb liefert gibt es mindestens 2 ebenbürtige kostenlose libs. c/c++ ist eine standartisierte sprache, ein vergleich von pb mit dem c/c++ standard ist aber nicht sinnvoll, höchstens der vergleich zu anderen compilern. vergleicht man pb mit dem borland c builder dann zieht pb im (mitgeliefertem) funktionsumfang deutlich den kürzeren.

inline assembly haben fast alle aktuellen kompiler.


@Uber-Pea:

pb verwirklicht keine prinziepiell neue herangehensweise und unterscheidet sich daher nicht von anderen sprachen. man kann höchstens den unterschied zu bestimmten anderen sprachen wie zb c feststellen wie das frogger gemacht hat.

imperative sprachen sind befehlsorientierte sprachen die in der programmierung der art wie prozessoren funktionieren folgen.

funktionale sprachen folgen einem abstraktem mathemathischen modell.
hier ein beispiel für ein komplettes programm das in der funktionalen programmiersprache haskell geschrieben ist.

Code: Alles auswählen

f n | n <  2 = 1
    | n >= 2 = f (n-1) + f (n-2)
die imperativen programmiersprachen unterscheidet man in prozedurale und objektorientierte programmiersprachen.
prozedural sind zum beispiel:
c, pascal, purebasic, modulo, ...

beispiele für objektorientierte sprachen:
c++, objective c, object pascal, smalltalk, java, simula, ...

Verfasst: 30.09.2004 14:13
von Uber-Pea
Danke für die vielen Hilfen, auch wenn ich hauptsächlich nur Bahnhof verstehe...
könnt ihr es mal so formulieren das auch jemand der eigendlich nicht proggt versteht?
Das beste wa sich bisher hinbekommen habe ist pi berechnen und reelle zufallszahlen am pc erstellen...
das sagt alles...

PS: Das referat ist am Dienstag, den 5.10.04, also bitte gebt mir viel das ich es übers Wochenende vorbereiten kann.

greetz, Uber-Pea

Verfasst: 30.09.2004 21:17
von Uber-Pea
Kann man bei dem Partikeldingsda von NicTheQuick auch noch einen dritten Typen hinzufügen? Also z.B. noch grüne Partikel?
das wäre genial, damit könnte ich zeigen das auch sachen simuliert werden können die eigendlich nicht gehen

Greetz, Uber-Pea

Verfasst: 30.09.2004 22:46
von Froggerprogger
Das geht bestimmt. Auch sicherlich mit noch mehr Farben, dann könnten sich z.B. gleichfarbige immer abstoßen, und andersfarbige immer anziehen, bzw. andersherum.

Damit modelliert man dann ja schon Menschengrüppchen, da rotten sich doch auch immer gerne welche zusammen (gleich und gleich gesellt sich gern) - aber einige andere fühlen sich vielleicht von Gegensätzen angezogen (Gegensätze ziehen sich an) und wirbeln daher um sich herum alles auf. :freak: Lustig anzusehen wäre daher vielleicht:
Mehrere Farben, sowie jede Kugel hat gespeichert, ob sie sich verhält wie:
a) gleiche anziehen, andere abstoßen
b) andere anziehen, gleiche abstoßen

oder so.

Aber lohnt wahrscheinlich nicht den Aufwand.
Ist doch auch so schon schön anzusehen, und nicht zu kompliziert zu erklären.
Und es zeigt, dass man den Computer für physikalische Experimente heranziehen kann, die für Stift und Papier zu komplex sind, für den Taschenrechner ebenso, da sie eben die Rechenpower gepaart mit einer großen Anzeige benötigen.
Wenn dann jeder noch ein einfaches "Hello World" hinbekommt und was über PB erfahren hat, und sich dabei sogar nichteinmal gelangweilt hat, dann hast Du die 20 Minuten bestimmt gut gefüllt.

Verfasst: 30.09.2004 23:15
von Uber-Pea
Hoffen wir das^^
obwohl nicht anzunehmen ist das sonderlich viele was verstehen...
naja, wenigstens hab ich das "Leuteandietafelvorruf"-Druckmittel^^
...jetzt lassen wir jemanden an der Tafel zeigen wie er die gestellte Aufgabe gelöst hat...wer meldet sich...Lisa sieht so abwesend aus, die kann man nach vorne kommen und uns das erklären^^^^

Ich würde das gerne noch mit ner dritten Gruppe haben, damit ich auch erläutern kann das man auch für uns Real nicht mögliche Experimente machen kann ( es gibt ja nur Positiv und Negativ aufgeladen, was anderes kann sich nciht anziehen...) Am besten Grün^^

Kann jemand NicTheQuick bescheidsagen ob er das macht?

Greetz, Uber-Pea

Verfasst: 01.10.2004 03:42
von Zaphod
nö. neutral gibt es auch.

Verfasst: 01.10.2004 12:56
von NicTheQuick
Hm... Das Programm ist dafür eigentlich nicht ausgelegt und ich wollte es auch nicht anders haben, aber ich kann mich natürlich trotzdem mal daran versuchen. Aber noch nicht heute.

Verfasst: 01.10.2004 13:49
von Uber-Pea
Tja Zaphod, wenn du mir jetzt noch sagen kannst wie du es hinbekommst das sich neutrale Teilchen (ohne Ladung) anziehen...
Und was machst du wenn wir 4 Gruppen machen wollen?

@Nic: Kannst du wenn du es versuchst bis spätestens montag (4.10.04) online stellen?
ich mach ja am dienstag das referat..
bitte...

Greetz, Uber-Pea