AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Projekt zur Erstellung einer Sprachspezifikation gestartet
Thema durchsuchen
Ansicht
Themen-Optionen

Projekt zur Erstellung einer Sprachspezifikation gestartet

Ein Thema von TurboMagic · begonnen am 12. Feb 2022 · letzter Beitrag vom 3. Apr 2022
Antwort Antwort
Seite 1 von 2  1 2      
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#1

Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 12. Feb 2022, 14:33
Hallo Leute,

auf Github wurde kürzlich ein neues Projekt gestartet.
Ziel: Erstellen einer Sprachdefinition der Delphi Programmiersprache im Backus-Naur Format (https://de.wikipedia.org/wiki/Backus-Naur-Form).

Das Projekt ist hier: https://github.com/MHumm/DelphiGrammar

Was bringt das? Das könnte dem einen oder anderen Tool Projekt welches Code verarbeitet helfen.
Wer mithelfen will darf sich gerne melden. Voraussetzuing ist nur ein GitHub Benutzerkonto.
Ich gebe der entsprechenden Person dann Commit Rechte.
Melden, wo/wie? Naja, entweder hier oder ein issue im Projekt aufmachen.

Ja aber ist das nicht jede Menge Arbeit?
Vermutlich weniger als du denkst! Warum? Weil jemand anderes schon seine existierende BNF Fassung beigesteuert hat.
Diese ist derzeit auf Stand von Delphi 10.3.

Ach ja: bisher steht das unter der Apache 2.0 Lizenz. Falls mit der jemand Probleme haben sollte melden, dann
kann man ggf. drüber reden ob ein Lizenzwechsel sinnvoll ist.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 14. Feb 2022, 14:09
Es gibt doch schon seit Jahren eine offizielle Delphi Sprachspezifikation, also wieso soll das nun geändert werden? Wenn ich das Wiki anschaue (nur kurz überflogen) graust es mich, was ich da lesen muss. Wieso um Himmelswillen sollen nun alle Bezeichner in Grossschrift geschrieben werden!?

Die Delphi Sprachspezifikation ist so wie sie ist perfekt und an die halten sich auch die meisten Entwickler. Sehe da keinen Grund wieso man da nun eine neue Spezifikation braucht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#3

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 14. Feb 2022, 14:23
Es gibt doch schon seit Jahren eine offizielle Delphi Sprachspezifikation
Kannst du dafür mal eine Quelle nennen?

Und wenn es die schon seit Jahren gibt, wie soll die dann die neuen Sprachfeatures wie Attribute und Inline-Variablen abdecken?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 14. Feb 2022, 14:40
https://www.delphipraxis.net/207753-...yle-guide.html

Oder reden wir hier von was anderem?
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.605 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 14. Feb 2022, 14:46
Das ist ein Style Guide, dabei geht es um die Formatierung des Sourcecodes. Wir reden hier aber von eine formalen Grammatik der Programmiersprache in Backus Naur Form.

Das sieht dan ungefähr so aus:

Code:
 Items inside <this> are implementation dependent
Goal -> (Program | Package | Library | Unit)
Program -> [PROGRAM Ident ['(' IdentList ')'] ';']
           ProgramBlock '.'
Unit -> UNIT QualIdent [PortabilityDirective] ';'
        InterfaceSection
        ImplementationSection
        InitSection '.'
Package -> PACKAGE Ident ';'
           [RequiresClause]
           [ContainsClause]
           END '.'
Library -> LIBRARY Ident ';'
           ProgramBlock '.'
ProgramBlock -> [UsesClause]
                [DeclSection]        
                 CompoundStmt
usw.

Quelle davon:
https://delphi.fandom.com/wiki/Object_Pascal_Grammar
Thomas Mueller
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 14. Feb 2022, 14:52
Ok dann habe ich das falsch verstanden. Dann macht das sogar Sinn, dass es da mal eine offizielle Grammatik dazu geben könnte.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 14. Feb 2022, 15:25
Oh Gott, linkseindeutige, kontextfreie Level 2-Grammatiken in der Chomsky-Hierarchie, Pumping-Lemma, ...

Nein, das sind alles Erinnerungen die brauche ich nicht zurück.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 14. Feb 2022, 15:29
Was bringt das? Das könnte dem einen oder anderen Tool Projekt welches Code verarbeitet helfen.
Wie wäre es, wenn man sich stattdessen an den LLVM hängt und den es parsen lässt, der schon alles weiß, und später auch das, was er jetzt noch nicht weiß?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Sailor

Registriert seit: 20. Jul 2008
Ort: Balaton
112 Beiträge
 
Delphi 2010 Professional
 
#9

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 14. Feb 2022, 16:48
Am Wochenende habe ich mir das Projekt gedowngeloadet. Bevor nun die Meckerei losgeht: Ich finde es durchaus verdienstvoll, daß jemand aus der Gemeinde sich damit befaßt. Eigentlich ist das die Sache von Embarcadero, so etwas anzubieten, vorausgesetzt, die haben da was.
1. Es ist nicht BNF, es ist EBNF. Der Verständlichkeit ist das abträglich, besonders, wenn man es so exzessiv wie der Autor einsetzt. Aber vor allem macht EBNF es schwierig, Aktionen an die Regeln zu binden oder symbolische Baumadressen zu verwenden. BNF ist da besser geeignet.
2. Ich habe die Grammatik umgeschrieben in ein BNF-Format, das mein Generator versteht. Es gibt neben einer erklecklichen Zahl von Konflikten m.E. auf den ersten Blick einiges an Fehlern, z.B. so was wie "VAR ;". Wie stellt man sicher, daß die Grammatik die Sprache korrekt definiert? Ohne die Unterstützung von Embarcadero helfen nur umfangreiche Tests mit Code, der vom Compiler akzeptiert resp. abgewiesen wird. Jede Menge Arbeit, vermutlich mehr als du denkst!
Fazit: Gutes Vorhaben. Bis jetzt benutze ich eine Grammatik, die auf Delphi 7 beruht. Eine aktuellere wäre nicht schlecht.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#10

AW: Projekt zur Erstellung einer Sprachspezifikation gestartet

  Alt 16. Feb 2022, 20:07
Ja, das wäre auch Sache des Herstellers, der zieht aber nur teilweise.
Soweit ich da was mitbekommen habe würde er möglicherweise eine Grammatik Korrekturlesen,
schreiben würde er keine.

Wenn in dieser Grammatik Fehler drin sind einfach kurz jeweils ein Issue dafür erstellen,
dann kann danach geschaut werden.

Ich bin jetzt auch nicht so tief in der Materie EBNF vs. BNF, ich hab' halt mal als Startpunkt
das genommen was jemand beigesteuert hat. Der hat wohl das in seinem Tool benutzt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz