Italia
Sondaggi

Braucht Ihr noch @INP, @INPB, OUT, OUTB?

 
- Page 1 -



RGH
Hallo XProfaner,

das direkte Ansprechen der I/O-Ports ist unter neueren Windowsversionen (NT, 2000, XP, VISTA) ja nicht mehr possibile und die genannten Funktionen und Befehle funktionieren auf diesen Plattformen von daher nicht mehr. Programme, die diese Befehle/Funktionen nutzen sind daher auf Rechnern mit Windows 95/98/ME beschränkt.

Daher meine Frage, ob Ihr diese Funktionen/Befehle noch nutzt.

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
02.09.2007  
 



 
- Page 4 -


 
07.09.2007  
 




Frank
Abbing

Zum Ersten bleibt diese Funktion noch undokumentiert bestehen. Es besteht keinerlei technischer Grund, sie zu entfernen.
Und zum Zweiten wird es in der nächsten XProfan-Version (die möglicherweise XProfan 2008 è) einen Ersatz geben, der nicht nur bequemer, sondern auch deutlich schneller ist (Stichwort: statisches Linken) und das DEF als API-Einbindung sehr schnell vergessen läßt.


Da wird sich Dietmars Herzklappe sicher schnell wieder beruhigen.

Ich sags nochmal, ich finde es in Ordnung, wenn unnützer Balast mal abgeschüttelt wird. Rolands Technik solche Sachen im Code bestehen zu lassen aber aus der Anleitung zu entfernen halte ich per einen geschickten Zug.
 
07.09.2007  
 



Also so richtig verstehen tue ich es aber trotzdem nicht, sei denn es geht um Größenreduzierung der Runtime. Ich verstehe es deshalb nicht weil Roland ohne Weiteres seinem Präkompiler beibringen kann alte Befehle in z.B. callByName(alterbefehl,...) umwandeln zu lassen. Sozusagen eine Funktion callByName die alte Funktionen auffängt ohne das eine Befehls-ID verbraucht wird.
 
07.09.2007  
 




RGH
@iF:

Wenn ich z.B. 20 create.....-Funktionen durch 1 Funktion create(...... ersetze habe ich 19 IDs gespart und kann sie an anderer Stelle verwenden. Das ist aber nur eine Seite der Medallie.
Die zweite ist die Übersichtlichkeit und/oder Logik der Sprache und damit vielleicht auch die leichtere Erlernbarkeit trotz zunehmender Komplexität. (Hier ist sicherlich auch einige Geschmacksache.) So habe ich diese Containerfunktionen z.B. bei ZIM (einer amerikanisch/kanadischen Datenbank-4GL) kennen und schätzen gelernt: Alle Settings wurden z.B. mit einer Funktion mit zahlreichen Subfunktionen eingestellt. Wenn ich also eine Einstellung benötigte, wußte ich sofort, welchen Funktion zu verwenden war und wo ich in der Doku nachzuschlagen hatte und im Quellcode ist sofort erkennbar, daß es sich um eine Einstellung handelt, weil da eine Setfunktion steht. (Es geht ja nicht nur ums Schreiben des Quellcodes, sondern auch darum, ihn später noch zu verstehen.) Als mir dann die IDs in Profan auszugehen drohten, fiel mir diese Technik ein, und ich setzte sie in Profan ein (ab 7.0). (Und die Erweiterbarkeit dieser Containerfunktionen mittels SUBPROC setzten dem Ganzen die Krone auf. Das gab es selbst in ZIM nicht! )
Zur Übersichtlichkeit gehört auch, daß ich nicht per eine Funktion mehrere Befehle/Funktionen ader alternative Schreibweisen haben möchte. Ein Beispiel: zunächst gabe es den Befehk MESSAGEBOX. Um die gedrückte Taste zu ermitteln, war eine Systemvariable abzufragen. Das erwies sich später als unpraktisch und es wurde die Funktion MESSAGEBOX() eingeführt, die die gedrückte Taste zurückgab. Im Rahmen des Ausmistens wurde der Befehl nun abgeschafft (1 ID wurde frei). Damit aber die alten Quellcodes der alten Hasen noch funktionieren (und Dietmars Herzklappe geschont wird ;) ) wandelt der integrierte PreCompiler vor dem Compilieren/Interpretieren beim Einlesen des Quellcodes den MESSAGEBOX-Befehl in die MESSAGEBOX-Funktion um. Neueinsteiger müssen mit dem veralteten Messagebox-Befehl aber nicht mehr belästigt werden, deshalb fehlt er in der Einführung der Aiuto. (Im Anhang der veralteten Befehle taucht er aber doch noch auf, damit auch der Neueinsteiger alte Quellcodes verstehen kann.)
Auf diese Weise versuche ich, die Sprache weiter zu entwickeln, ohne die Kompatibilität mit Füßen zu treten.

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.09.2007  
 




Nico
Madysa
Und deswegen hat noch keiner von uns das Profan-Programmieren aufgegeben.
 
Nico Madysa
07.09.2007  
 



 
- Page 5 -



Frank
Abbing
Blödsinn, es verschwinden immer wieder mal renomierte Leute in der Versenkung. Z.B. Thorsten Haggert oder Heiko Reddingius. Möchte ja mal wissen, wohin die abgewandert sind...
 
07.09.2007  
 




Nico
Madysa
Ich meinte auch eher die, die hier sehr aktiv sind, z.B... dich!
 
Nico Madysa
07.09.2007  
 




Frank
Abbing
Reines Profan wäre mir zuwenig, da bin ich ehrlich. In Symbiose mit Assembler geht das aber voll in Ordnung. Hab derzeit keinen Drang nach Veränderung.
 
07.09.2007  
 




Sebastian
König

Zitat aus der Hilfedatei von XProfan 10:


Wichtiger Hinweis: In künftigen XProfan-Versionen wird Def nur noch per die Definition von Konstanten verwandt werden.


Im Ernst:
Zum Ersten bleibt diese Funktion noch undokumentiert bestehen. Es besteht keinerlei technischer Grund, sie zu entfernen.
Und zum Zweiten wird es in der nächsten XProfan-Version (die möglicherweise XProfan 2008 è) einen Ersatz geben, der nicht nur bequemer, sondern auch deutlich schneller ist (Stichwort: statisches Linken) und das DEF als API-Einbindung sehr schnell vergessen läßt.


Ciao,

ich möchte meinen Senf auch mal dazugeben :

Die Entwöhnung der User von überholten Features durch Streichen der Erwähnung in der Aiuto halte ich per einen sehr guten Weg. Und das statische Linken als Ersatz per API-DEFs klingt wirklich interessant - ich bin sehr gespannt!

Allerdings möchte hier dafür plädieren, neben der DEFinition von Konstanten auch weiterhin die Möglichkeit der Definition von einzeiligen Funktionen in der Aiuto dokumentiert zu lassen. Nur sollte man dem Kind vielleicht einen anderen Namen geben: meiner Meinung nach wäre Makro sehr zutreffend.

Begründung: Neben der Möglichkeit, häufig wiederkehrende Rechnungen mit nur einer Zeile (die Variante mit einer Doppelpunkt-getrennten einzeiligen Prozedur ist schon mehr Tipparbeit...) elegant abzuküren, gibt es auch einen handfesten Geschwindigkeitsvorteil der DEF-Variante! Folgender Code zeigt bei mir einen Gewinn von ca. 25% in der Makro-Variante (16172 ms zu 21500 ms, XProfan 10.0a, kompiliert):
KompilierenMarkierenSeparieren
DEF MulDivMacro(3) (&(1) * &(2) / &(3))

proc MulDivFn

    parameters x&,y&,z&
    return x& * y& / z&

endproc

DEF &Count 500000
Cls
Randomize
declare start&,stop&
declare tmp&
print Rechne...
start& = &GetTickCount

whileloop &Count

    tmp& = MulDivMacro(Rnd(5000),Rnd(6000),Rnd(7000)+1)

wend

stop& = &GetTickCount
print Zeit mit Makro: ,int(stop& - start&),ms
print Rechne...
start& = &GetTickCount

whileloop &Count

    tmp& = MulDivFn(Rnd(5000),Rnd(6000),Rnd(7000)+1)

wend

stop& = &GetTickCount
print Zeit mit Funktion: ,int(stop& - start&),ms
waitkey
end

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
08.09.2007  
 




Sebastian
König
Hmm... gibt es gar keine Meinungen hierzu (mein Posting direkt circa diesem, meine ich)? Roland?
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
09.09.2007  
 



 
10.09.2007  
 




Jörg
Sellmeyer
Sebastian König
Hmm... gibt es gar keine Meinungen hierzu (mein Posting direkt circa diesem, meine ich)? Roland?


Naja, da kann es ja eigentlich keine zwei Meinungen zu geben. Entweder muß Roland das reviedieren oder sich Gedanken dazu machen, wieso die Prozedur langsamer ist.
Saluto
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.09.2007  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

12.032 Views

Untitledvor 0 min.
Sebastian Sprenger01.08.2013

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie