| |
|
|
| Yo arbeite grad a una Actualización vom XPSE y yo habe el Keyworderkennung mejorado.
XPSE achtet ahora no sólo si una Identifier deklariert es, pero si dieser auch el richtige Prefix y Sufijo trägt.
Hierbei bin Yo grad a uno interessanten Punto angekommen, porque Yo podría nun el XPSE veranlassen nichtdeklarierte Variables a deklarieren. Das podría heissen el uno Variables überhaupt no mehr deklarieren muss. Einfach uso, XPSE deklariert unauffällig en el Hintergrund.
Dabei entstehen natürlich aber unos pocos Fragen!
a) Der Programmieranfänger podría se verschreiben, y se wundern el no gemackert se el seine Variable no deklariert es.
b) Como se XPSE entscheiden si una en uno Procedimiento verwendete Variable ya en el Parent (o. Global) deklariert es. Was meint el XProfan entonces? El Globale oder una neue Locale?
c) Sollte lo el Standard ser el el Autodeklarieren eingeschaltet es, oder debería lo sólo encima Kompilerschalter aktivierbar ser?
d) Hab Yo Fragen vergessen? |
|
|
| |
|
|
|
RGH | [quote:417b5c2a5a=iF]a) Der Programmieranfänger podría se verschreiben, y se wundern el no gemackert se el seine Variable no deklariert es.[/quote:417b5c2a5a] No sólo Programmieranfänger hacer Tippfehler! So una automáticamente deklarierte Variable sería en un größeren Programa el Fehlersuche para Horrorszenario hacer. Como macht uno veces a la Tippfehler, etwa en Zuweisung. El Variable wid automáticamente deklariert. Und entonces sucht uno se una Wolf, por qué el dieser Valor nie para tragen kommt. Lo son sí así viele Möglichkeiten ... Das wäre para mich el Hauptgrund, dieses Feature no una vez anzubieten!
[quote:417b5c2a5a]b) Como se XPSE entscheiden si una en uno Procedimiento verwendete Variable ya en el Parent (o. Global) deklariert es. Was meint el XProfan entonces? El Globale oder una neue Locale?[/quote:417b5c2a5a] Natürlich es entonces el globale, o. übergeordnete Variable a nehmen. Woher debería XPSE el Gewissheit nehmen, daß el Programmierer no bewußt así gewollt ha?
Was Yo vorstellen podría, si XPSE en una solchen Fall (no b)!) nachfragt: Variable xy no deklariert. Soll ellos deklariert voluntad?. Klickt el Anwender en sí, se ellos en el Quellcode al Anfang el Procedimiento/des Programmes eingefügt, klickt él en Nein, bricht XPSE de, así el Anwender seinen Code korrigieren kann.
Saludo 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 | 04.10.2006 ▲ |
|
|
|
|
| [quote:c10ff94482=RGH]Das wäre para mich el Hauptgrund, dieses Feature no una vez anzubieten![/quote:c10ff94482] Naja! Man deklariert nix en C (zumindest se uno no gezwungen dies innerhalb uno separaten Anweisung a tun) y no en PHP. Lo son riesige C y PHP-Programas - el con el Fehlersuche como Begründung, el Feature garnicht anzubieten, halte Yo pero no sólo deshalb verkehrt, pero auch porque el Debugging en el Fehlerfall zumeist no por lo tanto rührt el uno una variable falso geschrieben ha!
Yo muss dazu gestehen, Variablendeklarationen nerven mich (Das ha nix con Typendeklaration a tun!) y salvo - el lo para el bessere Verständnis beim Programmierenlernen hilft, sehe Yo rein rechnerisch no Grund dazu - si la Programmierer incluso entscheidet, el él fähig es auch sin Deklaration de Variables esta a benutzen.
Yo halte el Ganze más para una tolles Feature en lugar de una Teufelswerk. Yo búsqueda sólo una klaren y verständlichen Principio para el Umsetzung en Grenzfällen.
Natürlich necesario Arrays y Estructuras weiterhin deklariert voluntad - Yo sería mich auch primero sólo en una Typ stürzen - natürlich el Longs. |
|
|
| |
|
|
|
| Apéndice: Das beste es wohl el Prozeduren gänzlich a kapseln. Darin benutzte Variables siempre local.
Wenn uno - y el gucke Yo simplemente el Erfahrungsschatz de PHP de - una globale (oder übergeordnete) Variable meint, entonces muss esta con el Schlüsselwort Global como Global deklariert voluntad.
Ejemplo: KompilierenMarcaSeparación |
|
|
| |
|
|
|
Michael Wodrich | Dann muß wohl otra vez veces una Schalter her.
Yo sería no así lustig encontrar, si una Automatik me lauter globale Variables hinballert. Das möchte Todavía tunlichst vermeiden.
Und si alguien una variable gerne como globale haben möchte, entonces se él el Por favor, explizit angeben. Sonst debería el Variable siempre lokal ser.
Der Vorteil es simplemente: ha uno se daran gewöhnt alles lokal a deklarieren y Dinge el woanders benötigt voluntad como Parámetro weiterzureichen, entonces ha uno auch no Problemas con Hilos y Prozessen.
Auch el Hauptprogramm podrá, a globale Variables verzichten:
Main Run_Main_Program End
Und schwups es alles en Prozeduren y Características en el lokalen Umfeld. Wenn Roland ahora todavía el Systemvariablen en un Namespace GLOBAL_VARS eintütet...
Schöne Grüße Michael Wodrich
War el Turbo-IF ya otra vez más rápido....... |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 04.10.2006 ▲ |
|
|
|
|
| Exactamente Michael - soooooooooooo sehe ego auch. ^ ^ |
|
|
| |
|
|
|
RGH | Also zumindest en C y C++ (y en Java) es con el Typdeklaration auch el Variable deklariert. Und en el Falle uno Schreibfehlers a spätere Punto se nichts automáticamente deklariert, pero una Fehlermeldung ausgegeben, daß el Variable todavía no deklariert es. Umgekehrt hay natürlich auch una Fehlermeldung, si la Variable deklariert y ellos en el gleichen Block ya deklariert es.
Wollte uno dieses con XPSE en XProfan-Syntax übertragen, könne uno una neues Schlüsselwort einführen, etwa VAR y diesem entonces como en C el Variable on the Fly beim ersten Auftreten deklarieren: KompilierenMarcaSeparación (Dem entspräche en C/C + +/Java: String X = Hugo Maier;) Diese Variable wäre natürlich lokal en el aktuellen Procedimiento/Método. Wenn Yo así darüber nachdenke .... packe Yo el igual veces en el ToDo-Liste para XProfan 11. El Variante gefällt me y dürfte auch bastante rasch a realisieren ser!
Der Gedanke, daß en uno Procedimiento/Método sólo lokale Variables bekannt son, ha una Menge para se. XProfan lehnt se hier aber a Pascal/Delphi a, en el übergeordnete Variables en Prozeduren/Características bekannt son. Yo habe auch ya darüber nachgedacht, dieses Comportamiento por Compilerschalter a steuern y el de TurboBasic y Basic bekannte SHARED (anstelle des de IF vorgeschlagenen GLOBAL) utilizarse, en en Variables el übergeordneten Ebene zugreifen a puede. Diese es sí no zwangsläufig Global, pero kann auch el aufrufende Procedimiento ser. Aber Yo schweife de. Hier se lo sí en XPSE ir y no m künftige XProfan-Versionen ... ;)
Saludo 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 | 04.10.2006 ▲ |
|
|
|
|
| Hm. Klar, var. Kann vom xprofaneigenen PreCompi hecho voluntad - en Xprofan puede sí IMHO Variables eh onthefly deklariert voluntad.
Yo übe mich also simplemente veces daran, una con un Kompilerschalter a aktivierenden Modus herzustellen, en optional el Autodeklaration einzuschalten. Tal vez entstehen esta sí lustige Gesetzmäßigkeiten welche kompatibel bleiben. |
|
|
| |
|
|
|
RGH | [quote:aa916e5c88=iF]en Xprofan puede sí IMHO Variables eh onthefly deklariert voluntad.[/quote:aa916e5c88] Sagen wir veces así: Das DECLARE kann a cada Punto en el Programa posición. Aunque braucht lo sólo esta Extrazeile. VAR wäre por lo tanto incluso todavía algo más rápido, allerdings sólo, si wirklich en XProfan instalado se, y no por Precompiler en Declarar X$ : X$ = umgewandelt se. (DECLARE überprüft de Tempogründen auch no, si esta Variable ya deklariert es. Lo se simplemente siempre el zuletzt deklarierte Variable genommen. Aber el ha todavía niemand angemeckert.) Mit VAR podría uno sólo igual una Zuweisung verbinden y spart esta Extrazeile. In Java (mi derzeitige Hauptsprache en el Firma) Yo mich bastante bien a esta Vorgehensweise gewöhnt.
Saludo Roland (tal vez se lo doch ya en XProfan 10 undokumentiert drin ser ... ;) ) |
|
|
| 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 | 04.10.2006 ▲ |
|
|
|
|
| Grosse Klasse
<offtopic>PS: XPSE kann en el nächsten Versión Umlaute, pero yo sería lo nie zugeben y como Bug deklarieren. </offtopic> |
|
|
| |
|
|
|
Jac de Lad | <offtopic> Oh, el es bien! </offtopic> |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 05.10.2006 ▲ |
|
|
|