AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi RAD 2009: Komische Auffassung von Syntax...
Thema durchsuchen
Ansicht
Themen-Optionen

RAD 2009: Komische Auffassung von Syntax...

Ein Thema von alzaimar · begonnen am 26. Jan 2009 · letzter Beitrag vom 27. Jan 2009
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 09:37
Hab gerade ein Programm entwanzt und bin über einen Prozeduraufruf gestolpert:
Delphi-Quellcode:
Procedure DoProcedure (aParameter : TSomeType);
Begin
End;
...
DoProcedure (MyParameter,); // <--- man beachte das Komma
..
Das kompiliert , lustig, gelle?

Hier nochmal ein komplettes 'Projekt'
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}

uses
  SysUtils;

  Procedure Foobar (s : String);
  Begin
    Writeln(s);
  End;
begin
  try
    Foobar('Hello World!',); // <--- Möööp
  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;
end.
Ich find das ja nett, aber was soll das? Hat das irgendeinen Sinn?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 09:42
Nö, aber es stört beim parsen des Codes nicht. Und es wurde anscheinend auch nie implementiert, dass das ein Fehler ist.

btw: Darüber gabs schon Threads
Edit: Und das ist nicht erst seit 2009 so.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Clemens L.

Registriert seit: 27. Apr 2008
35 Beiträge
 
Delphi 2009 Architect
 
#3

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 09:47
Turbo Delphi 2006 meckert auch nicht, unterkringelt es aber rot als Fehler

Delphi 6 hingegen meldet "Zuviele Parameter"
Clemens
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 09:51
@Clemens L.: Ist schon komisch, oder? Ein Parser (Syntaxchecker), der völlig losgelöst von einem Compiler agiert ...
@sirius: Das dachte ich mir schon, aber wonach hätte ich suchen können/müssen? Ach, egal. Ist halt lustg.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#5

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 10:11
Wird wohl genau aus dem selben Grund so sein, wie man auch das Semikolon ; vor einem End weglassen kann
Delphi-Quellcode:
procedure WhatEver;
begin
  Eins;
  Zwei;
  Drei
end;
Semikolons (und dann auch wohl Kommata) sind halt nur Seperatoren, und nicht Terminatoren (wie unter C++) - so meine ich das mal gelesen zu haben.
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 11:29
Zitat von alzaimar:
Delphi-Quellcode:
DoProcedure (MyParameter,); // <--- man beachte das Komma
..
Das kompiliert , lustig, gelle?
Also mein Delphi 2009 meldet "Zu viele Parameter".

Delphi 2009 Update 1 und 2 installiert.
  Mit Zitat antworten Zitat
XiaN

Registriert seit: 14. Jul 2006
19 Beiträge
 
Delphi 2009 Professional
 
#7

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 15:13
Delphi-Quellcode:
procedure WhatEver;
begin
  0;
end;
Compiliert unter 200x auch. Unter Delphi 7 hingegen nicht
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 15:22
Hallo,

könnte es sein, dass die neueren Delphiversionen auch unnütze (leere) Prozeduren, einschließlich ihrer Aufrufe, wegoptimieren?
Delphi-Quellcode:
Procedure nixdamachich(boooeehhh : Integer);
begin
end;
ist ja irgendwie sinnfrei und
Delphi-Quellcode:
...
  nixdamachich(12345);
...
in diesem Zusammenhang ebenso. Und wenn nixdamachich weg kann, dann dürften die sinnigsten und unsinnigsten Paramter auch herzlich wenig Bedeutung haben. Wofür dann noch deren syntaktische Korrektheit prüfen?

Ist jetzt nur mal so ein bisserl Spekulatius in die Runde geworden.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 26. Jan 2009, 16:57
Zitat von nahpets:
könnte es sein, dass die neueren Delphiversionen auch unnütze (leere) Prozeduren, einschließlich ihrer Aufrufe, wegoptimieren?
Das wäre schlimm. Gottseidank ist dem nicht so (außer du rufst die Funktion gar nicht auf)

Zitat:
Ist jetzt nur mal so ein bisserl Spekulatius in die Runde geworden.
Warum spekulieren, wenn man den Delphi Compiler anwerfen kann.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: RAD 2009: Komische Auffassung von Syntax...

  Alt 27. Jan 2009, 08:59
Zitat von jbg:
Warum spekulieren, wenn man den Delphi Compiler anwerfen kann.
Weil ich die Delphiversion, bei der das Phänomen auftritt, nicht habe
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:04 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