Syntaxvorschläge

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
diogenes
Beiträge: 200
Registriert: So 11. Jul 2010, 18:39
OS, Lazarus, FPC: Linux
CPU-Target: 64 Bit
Wohnort: Wien
Kontaktdaten:

Syntaxvorschläge

Beitrag von diogenes »

Wo kann man für FPC Vorschläge für Syntaxerweiterungen unterbringen? Ich hätte etwa folgende Idee, die Einzeiler ohne Variablen kompakter machen würde. An Stelle von z.B.

Code: Alles auswählen

function Circle( X: Exctended): Extended;
 begin
   Result := SqRt( 1 - Sqr( X))
  end;
könnte man kürzer (und vielleicht klarer)

Code: Alles auswählen

function Circle( X: Extended): Extended= SqRt( 1 - Sqr( X));
formulieren. Schlechte Idee?
Ceterum censeo computatores per Pascal docendos esse.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Syntaxvorschläge

Beitrag von mschnell »

Sowas ähnliches geht vielleicht sogar noch kürzer wenn Du den Macro Preprozessor einschaltest. (Ich hab's nicht getestet):

{$define Circle( X) (SqRt( 1 - Sqr( X))) }

(oder so ähnlich}

-Michael

Benutzeravatar
jwdietrich
Beiträge: 173
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-14.1, Windows 2000-11, Raspbian (L 3.7.0, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Syntaxvorschläge

Beitrag von jwdietrich »

Das erinnert ein wenig an die Syntax der Programmiersprache S.

Solche Vorschläge kann man im Free Pascal Bugtracker vorbringen.

diogenes
Beiträge: 200
Registriert: So 11. Jul 2010, 18:39
OS, Lazarus, FPC: Linux
CPU-Target: 64 Bit
Wohnort: Wien
Kontaktdaten:

Re: Syntaxvorschläge

Beitrag von diogenes »

Danke!
Ceterum censeo computatores per Pascal docendos esse.

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Syntaxvorschläge

Beitrag von marcov »

Lese auch mal http://www.freepascal.org/faq.var#extensionselect

Meistens werden "shorthand" Syntax erweiterungen nicht honoriert.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Syntaxvorschläge

Beitrag von m.fuchs »

diogenes hat geschrieben:An Stelle von z.B.

Code: Alles auswählen

function Circle( X: Exctended): Extended;
 begin
   Result := SqRt( 1 - Sqr( X))
  end;
könnte man kürzer (und vielleicht klarer)

Code: Alles auswählen

function Circle( X: Extended): Extended= SqRt( 1 - Sqr( X));
formulieren. Schlechte Idee?
Hm, ich sehe jetzt keinen Vorteil in deiner Schreibweise. Man spart das Tippen von begin und end, aber das übernimmt in den meisten Fällen sowieso die IDE. Dafür sinkt die Lesbarkeit.

Und höherer Tippaufwand, ist nicht unbedingt schlecht.

Ich zitiere mal Jorge Aldo G. de F. Junior:
Pascal programmers tend to plan ahead, they think before they type. We type a lot because of Pascal verboseness, but usually our code is right from the start. We end up typing less because we fix less bugs.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

diogenes
Beiträge: 200
Registriert: So 11. Jul 2010, 18:39
OS, Lazarus, FPC: Linux
CPU-Target: 64 Bit
Wohnort: Wien
Kontaktdaten:

Re: Syntaxvorschläge

Beitrag von diogenes »

Hm. Die Idee ist dann wohl doch schlechter, als ich gedacht habe. Naja. Kann nicht jede gut sein :)
Ceterum censeo computatores per Pascal docendos esse.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Syntaxvorschläge

Beitrag von m.fuchs »

Ich habe mal über ähnliches nachgedacht als es um anonyme Funktionen ging, da wäre ein Syntax ohne begin und end definitiv besser lesbar.
Allerdings bin ich mir inzwischen nicht mehr sicher, ob anonyme Funktionen überhaupt eine gute Idee sind.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Syntaxvorschläge

Beitrag von Socke »

m.fuchs hat geschrieben:Ich habe mal über ähnliches nachgedacht als es um anonyme Funktionen ging, da wäre ein Syntax ohne begin und end definitiv besser lesbar.
Allerdings bin ich mir inzwischen nicht mehr sicher, ob anonyme Funktionen überhaupt eine gute Idee sind.
Java hat das Konzept noch weiter getrieben. Da gibt es anonyme Klassen. Die werden nur für eine einzige Instanz pro Elternobjekt erstellt (sind dann aber entsprechend kurz). Das ganze ist da notwendig, weil es keine Funktionszeiger gibt ...

Anonyme Funktionen braucht man nur, wenn man es nach Phil Karlton hält: "There are only two hard things in Computer Science: cache invalidation and naming things."
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Syntaxvorschläge

Beitrag von pluto »

Könnte man nicht einfach die Operatoren überladen?
(habe ich schon mal gemacht, es gibt sogar Beispiele im FPC Verzeichnis, such dort mal nach Operator)

Oder gar einen neuen einfügen?
MFG
Michael Springwald

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Syntaxvorschläge

Beitrag von Socke »

pluto hat geschrieben:Oder gar einen neuen einfügen?
Das muss im Compiler geschehen. Man kann nur existierende Operatoren überladen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

diogenes
Beiträge: 200
Registriert: So 11. Jul 2010, 18:39
OS, Lazarus, FPC: Linux
CPU-Target: 64 Bit
Wohnort: Wien
Kontaktdaten:

Re: Syntaxvorschläge

Beitrag von diogenes »

... was eigentlich schade ist.
Ceterum censeo computatores per Pascal docendos esse.

Antworten