undokumentierte Konstanten

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: undokumentierte Konstanten

Beitrag von Josh »

DarkDragon hat geschrieben:Doch, alle Quelltexte müssen wieder angepasst werden, die sich das zum Vorteil gemacht haben. Das soll so bleiben wie es ist.
was sich durch eine kleines häckchen in einer checkbox erledigen lassen würde. welche vorteile meinst du?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: undokumentierte Konstanten

Beitrag von DarkDragon »

Naja, es gibt sicher ne Menge QuellTexte hier im Web die z.B. so funktionieren:

Code: Alles auswählen

Procedure Test()
  Debug SinglePassWontAllowAccessBeforeButMultiPassDoes
EndProcedure

Global SinglePassWontAllowAccessBeforeButMultiPassDoes.i = 10

Debug SinglePassWontAllowAccessBeforeButMultiPassDoes
Test()
Aber würde Test() nun SinglePassWontAllowAccessBeforeButMultiPassDoes kennen würde es nichtmehr laufen.
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
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: undokumentierte Konstanten

Beitrag von Josh »

wie oben geschrieben, würde sich das leicht durch eine einstellmöglichkeit in den compileroptionen lösen lassen, damit alter code weiterhin singlepass compiliert wird. damit wäre auch jedem die möglichkeit geboten, sich weiterhin mit einem einfachen compiler abzuplagen.

von mir aus kann aber gerne jeder, der ein programm ohne EnableExplicit schreibt probleme bekommen bis ende nie.
Benutzeravatar
Rudi
Beiträge: 143
Registriert: 22.04.2010 18:28
Wohnort: #PB_Any

Re: undokumentierte Konstanten

Beitrag von Rudi »

Um nochmal auf die Fragestellung zurückzukommen. Alle mir bekannten Farb-Konstanten:

Code: Alles auswählen

If OpenWindow(0, #PB_Ignore, #PB_Ignore, 322, 112, "Farbkonstanten", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  SendMessage_(WindowID(0),#WM_SETICON,#False,11)
  TextGadget(1, 5, 5, 100, 30, "#Black")
  SetGadgetColor(1, #PB_Gadget_BackColor, #Black)
  SetGadgetColor(1, #PB_Gadget_FrontColor, #White)
  TextGadget(2, 5, 40, 100, 30, "#Gray")
  SetGadgetColor(2, #PB_Gadget_BackColor, #Gray)
  TextGadget(3, 110, 5, 100, 30, "#Red")
  SetGadgetColor(3, #PB_Gadget_BackColor, #Red)
  TextGadget(4, 215, 5, 100, 30, "#Magenta")
  SetGadgetColor(4, #PB_Gadget_BackColor, #Magenta)
  TextGadget(5, 110, 40, 100, 30, "#Green")
  SetGadgetColor(5, #PB_Gadget_BackColor, #Green)
  TextGadget(6, 215, 40, 100, 30, "#Yellow")
  SetGadgetColor(6, #PB_Gadget_BackColor, #Yellow)
  TextGadget(7, 5, 75, 100, 30, "#White", #WS_BORDER)
  SetGadgetColor(7, #PB_Gadget_BackColor, #White)
  TextGadget(8, 110, 75, 100, 30, "#Blue")
  SetGadgetColor(8, #PB_Gadget_BackColor, #Blue)
  TextGadget(9, 215, 75, 100, 30, "#Cyan")
  SetGadgetColor(9, #PB_Gadget_BackColor, #Cyan)

  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Gruß, Rudi
Win7 (x64)PB 5.4x (x86)5,7 Windows-LeistungsindexSuche
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: undokumentierte Konstanten

Beitrag von DarkDragon »

Josh hat geschrieben:von mir aus kann aber gerne jeder, der ein programm ohne EnableExplicit schreibt probleme bekommen bis ende nie.
So besser:

Code: Alles auswählen

Procedure Test()
  Define SinglePassWontAllowAccessBeforeButMultiPassDoes
  Debug SinglePassWontAllowAccessBeforeButMultiPassDoes
EndProcedure

Global SinglePassWontAllowAccessBeforeButMultiPassDoes.i = 10

Debug SinglePassWontAllowAccessBeforeButMultiPassDoes
Test()
Würde dasselbe produzieren, bzw. einen Fehler wegen Doppeldeklaration.
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.
KPA
Beiträge: 35
Registriert: 10.06.2010 22:53

Re: undokumentierte Konstanten

Beitrag von KPA »

Hi nino

hilf mir zu verstehen. Der Vorteil eines Singlepass Compiler soll die Garantie der besseren Lesbarkeit von Quelltexten sein ?? Weil man die Procedure in der richtigen Reihenfolge schreibt ??

Was soll das heißen. Schreibst du die Procedures mitten in den Quelltext ? Aber selbst wenn, wohin genau wenn es mehrere Aufrufe der gleichen Procedure an versch. Stellen des Quelltextes gibt? Und wie soll das die lesbarkeit erhöhen ??

Ich glaube hier wird lediglich der Nachteil das PureBasic kein Multipass Compiler ist versucht wegzudiskutieren.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: undokumentierte Konstanten

Beitrag von DarkDragon »

Ich glaube du bist dir garnicht bewusst, was es heißt sowas nachträglich einzubauen. Solche zusammengehackte Tools wie man sie hier findet sind mit sowas nicht vergleichbar, immerhin muss danach ja alles korrekt laufen. Es werden also weitere Bugs auftauchen und dadurch dass man nun eine Checkbox sogar fordert um den alten Compiler zu verwenden wird die ganze Arbeit verdoppelt. Und wie schon erwähnt, KPA: wenn du all unsere Codes dann anpasst dann sind wir damit einverstanden. Die Wende um PB 4.0 war uns schon genug.

@Josh: Ich glaub du willst KPA dabei helfen, gell? Kannst ja mal mit dem Code-Archiv anfangen.

Wenn ihr fertig seid können wir darüber diskutieren, vorher seh ich da keinen Grund jetzt nach all den Jahren umzustellen wegen sowas.
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
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: undokumentierte Konstanten

Beitrag von Josh »

KPA hat geschrieben:hilf mir zu verstehen. Der Vorteil eines Singlepass Compiler soll die Garantie der besseren Lesbarkeit von Quelltexten sein ?? Weil man die Procedure in der richtigen Reihenfolge schreibt ??
an solche obskuren logiken solltest du dich hier gewöhnen :D
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

Re: undokumentierte Konstanten

Beitrag von ts-soft »

Ich benötige fast nie Declare, lediglich bei sehr grossen Programmen mit vielen Includes, wenn die
Proceduren sich in einer anderen Datei befinden.

Solange ich kein Declare nutze, kann ich bei auftreten eines Fehlers sicher sein, das ich im Source
nach Oben suchen muß. Dies ist bei MultiPass nicht mehr gegeben.

Den Geschwindigkeitsvorteil haben wir bereits erwähnt.

Ausserdem wenn aus allen Single-Pass Compilern Multi-Pass Compiler gemacht werden, gibt es
keine Multi-Pass Compiler mehr :twisted:

Das Wort zum Sonntag sprach:
Thomas
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
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: undokumentierte Konstanten

Beitrag von Josh »

DarkDragon hat geschrieben:@Josh: Ich glaub du willst KPA dabei helfen, gell?
natürlich. sinnvolle vorschläge werde ich immer unterstützen
Gesperrt