Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Operator Überladung #9

Open
bafto opened this issue Oct 30, 2022 · 1 comment
Open

Operator Überladung #9

bafto opened this issue Oct 30, 2022 · 1 comment
Labels
Vorschlag: Feature Neuer Feature Vorschlag: Verbesserung Verbesserungs eines existierenden Features
Milestone

Comments

@bafto
Copy link
Member

bafto commented Oct 30, 2022

Operator Überladung

Manche Sprachen (z.B. C++ oder C#) unterstützen das Überladen von Operatoren.
DDP tut dies irgendwie bereits, wenn man Operatoren in Funktionsaliasen verwendet. Allerdings führt das zu mehr Problemen als es löst, da der Operator damit seine native Bedeutung verliert. Aliase haben die höchste operator-precedence und überschreiben somit native Operatoren.

Vorteile

Vor allem sobald es Strukturen gibt wird es praktisch sein Operatoren für diese überladen zu können, da damit Deutsche-Syntax deutlich leichter gemacht wird.

Herausforderungen

Dadurch, dass Aliase bereits beim Parsen erkannt werden müssen, liegt es in der Verantwortung des Parsers zu überprüfen ob eine Funktionen einen Operator überlädt oder nicht, und falls ja, die Typen korrekt zu erkennen und im Zweifel keinen Fehler zu melden, sondern einen Operator statt einem Funktionsaufruf zu parsen.
Das ist recht kompliziert zu implementieren. Man könnte es dem Programmierers überlassen Funktionen, die Operatoren überladen sollen, als solche zu markieren. Das könnte das Parsen potentiell erleichtern.

Wie schwierig die Implementation aber tatsächlich wird, oder wie sie überhaupt aussähe, kann man erst sagen wenn man anfängt daran zu arbeiten.

@bafto bafto added Vorschlag: Verbesserung Verbesserungs eines existierenden Features Vorschlag: Feature Neuer Feature labels Oct 30, 2022
@bafto
Copy link
Member Author

bafto commented Jul 12, 2023

Syntax Vorschlag:

Die Funktion .... macht:
    ...
Und überlädt den mal/plus/etc. Operator.

Der Parser würde dann überprüfen, ob die Funktionssignatur zum Operator passt (also unary/binary etc.).

@NotLe0n NotLe0n added this to the beta release milestone Oct 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Vorschlag: Feature Neuer Feature Vorschlag: Verbesserung Verbesserungs eines existierenden Features
Projects
None yet
Development

No branches or pull requests

2 participants