schnellere Sprachen??

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Gute Compiler erkennen zudem Pipelinehindernisse und versuchen Code so umzustellen, damit der Befehlsdurchsatz auf der Pipeline maximal wird.


Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Der PBCompiler übersetzt PureBasic in Assemblercode (Du hast vlt schon davon gehört, PB nimmt die Assemblervariante Flatassembler). Andere Compiler übersetzen Ihren Code in Assembler. Der Assemblercode wird dann in die Maschinensprache übersetzt und in eine EXE gepackt.

wenn du AssemblerCode und Assembler unterscheidest, wo ist dann noch der unterschied zu Maschinensprache?

als Assembler bezeichnet man im allgemeinen den Klartext der Zahlenfolgen die die CPU verarbeitet.

manche sagen, "Maschinensprache" seien nur die Zahlen, andere setzen den Begriff mit Assembler gleich.

aber wo ist ein anderer unterschied als die schreibweise, ob ich nun

Code: Alles auswählen

169,0,141,0,4,141,0,5,141,0,6,141,0,7
schreibe, oder

Code: Alles auswählen

LDA 0
STA 1024,Y
STA 1280,Y
STA 1536,Y
STA 1792,Y
(6502-ASM)

wie auch immer, die wenigsten Compiler erzeugen erst einen Klartextcode, bevor sie die Zahlenfolgen erzeugen.
insofern findet doch eine direkte übersetzung ins chinesische statt.

den vorteil, den PB durch die zwei-pass-compilierung hat ist praktisch folgende:
es wird keine übersetzung aus chinesischen versatzstücken angefertigt wie bei anderen compilern, sondern erst ein optimaler chinesischer text erstellt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

naja, es ist aber auch nicht unüblich erst nach assembly zu übersetzen, gcc macht das zb immer.

@obba:
gäbe es einen maschinensprachen befehl, der "printn("bla")" ausdrückt, so gäbe es da nicht viel zu optimieren. hinter printn("bla") stehen aber in wirklichkeit ein paar hundert hochsprachen befehle die wiederum zu ein paar tausend maschineninstruktionen übersetzt werden. Dieser übersetzungsvorgang ist nicht so eindeutig wie es vieleicht den anschein hat.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

DarkDragon hat geschrieben:Hmm ok, wenn du das so nimmst: Es gibt verschiedene Arten sich auszudrücken und viele Wege um zum Ziel zu kommen.

Beispiel:

1) Hallo, ich bin Daniel.
2) Hallo, Daniel ist mein Name.

Wobei 1) das optimierteste ist(kürzer). So ist es auch mit Programmiersprachen.
Das zweite klingt aber so schön abgehoben :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

DarkDragon hat geschrieben:Hmm ok, wenn du das so nimmst: Es gibt verschiedene Arten sich auszudrücken und viele Wege um zum Ziel zu kommen.

Beispiel:

1) Hallo, ich bin Daniel.
2) Hallo, Daniel ist mein Name.

Wobei 1) das optimierteste ist(kürzer). So ist es auch mit Programmiersprachen.
Der Kanaken-Compiler optimiert
dementsprechend am besten:

3) Ich Daniel

:allright:


und nu jungs , geht raus und feiert das WochenEnde anstatt vor dem dämlichen computer zu sitzen
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Didelphodon
Beiträge: 360
Registriert: 18.12.2004 13:03
Wohnort: Wien
Kontaktdaten:

Beitrag von Didelphodon »

Um noch ein paar nette Begriffe einzuwerfen - und vielleicht hilfts Euch ja: Ihr redet eigentlich die ganze Zeit von Mnemonics und deren Übersetzung in die entsprechenden Opcodes.

Zum allgemeinen Verständnis, denn ich glaube, da reden EINIGE an einander vorbei: Assembler kann man sich mehr oder weniger (beachte: MEHR ODER WENIGER) als plattformunabhängige Maschinensprache fürs menschliche Auge vorstellen. Im Wesentlichen wird beim Compilen von Assembler und dem nachträglichen Linken (das nicht zu vergessen) klartextlichen (Assembler-)Befehle (das sind die Mnemonics) mittels einer "Übersetzungstabelle" in die numerischen (!!) Maschinenbefehle (das sind die Opcodes), die die CPU versteht/kann übersetzt. Zusätzlich werden dabei alle symbolischen Adressen (Variablen) in Adressen umgerechnet und das - mittels Assembleranweisungen gewünschte Speichermodell - um alles herumgelegt/erzeugt.

Interessant: Disassembliert mal einen selbst geschriebenen compilierten PureBasic-5-Zeiler, dann beginnt man die ENGE Beziehung zwischen Assembler und Maschinencode (und damit EXE oder COM) zu verstehen.
Und nebenbei habt Ihr dann auch schon die erste Lektion des Crackens gelernt. :lol:

@Rings: :allright: :lol: :lol: :lol: :allright:

LG Didel.
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

(Ich spiele jetzt mal hallodri :lol: :allright: )
PureBasic hat geschrieben:Einführung

[...]

Dies bedeutet, dass derselbe Programmcode für beide Systeme nativ kompiliert werden kann und trotzdem die volle Power beider ausnutzt. Es gibt keine Flaschenhälse wie einen virtuellen Prozessor oder einen Code-Übersetzer; der generierte Code produziert ein optimiertes Executable, ungeachtet des OS, auf welchem es kompiliert wird. Die externen Bibliotheken sind vollständig in handoptimiertem Assembler, welcher sehr schnelle Befehle - oftmals schneller als die C/C++ Äquivalente - erzeugt, geschrieben.

Die bedeutendsten Features von PureBasic

[...]
- Sehr schnelle Kompilierung (über 300.000 Zeilen/Minute auf einem P200)
- Externe Bibliotheken sind vollständig in handoptimiertem Assembler geschrieben, um maximale Geschwindigkeit und Kompaktheit zu bieten
- Vorkompilierte Strukturen mit Konstanten-Dateien für extra-schnelle Kompilierung
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Rings hat geschrieben:Der Kanaken-Compiler optimiert
dementsprechend am besten:

3) Ich Daniel

:allright:


und nu jungs , geht raus und feiert das WochenEnde anstatt vor dem dämlichen computer zu sitzen
Zum K.-Compiler: SyntaxError ergibt das bei mir ;-) .
Zum kleingeschriebenen: :lol: Du glaubst wohl auch noch an den Osterhasen, oder? Ich geh doch nicht bei diesem Sauwetter(Die Sonne scheint) raus.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Könnte man ja braun werden und Vitamin D produzieren, schrecklicher Gedanke :D
Bild
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Ich liebe die Sonne!!
Ich würd sie umarmen, wenn sie dichter dan wär.
Warmes Wetter ist so schön, da geh ich immer skaten.
Antworten