DMUG-Archiv 2011

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Primzahlprogramm

Hallo zusammen,

Oder hat schon mal jemand ernsthaft Goto verwendet?

In[10]:= First[
 Transpose[
  Select[Transpose[{#, FindList[#, "Goto"] & /@ #} &[
     FileNames[
      "*.m", {"S:\\Program Files\\Wolfram \
Research\\Mathematica\\8.0"}, \[Infinity]]]], #[[2]] =!= {} &]]]

Out[10]= {"S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\AddOns\\Applications\\CCodeGenerator\\CCodeGenerator.m", "S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\AddOns\\Applications\\SymbolicC\\SymbolicC.m", "S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\SystemFiles\\Kernel\\TextResources\\English\\FunctionInformation.m", "S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\SystemFiles\\Kernel\\TextResources\\English\\Messages.m", "S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\SystemFiles\\Kernel\\TextResources\\English\\Usage.m", "S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\SystemFiles\\Links\\DatabaseLink\\DatabaseLink.m", "S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\SystemFiles\\Links\\DatabaseLink\\Kernel\\SQL.m", "S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\SystemFiles\\Links\\DatabaseLink\\PacletInfo.m", "S:\\Program Files\\Wolfram Research\\Mathematica\\8.0\\SystemFiles\\Links\\GPUTools\\CodeGenerator.m"}

Die Stellen in Messages.m und Usage.m beziehen sich auf Goto[] selbst, die Stellen in CCodeGenerator.m und SymbolicC.m implementieren CGoto[] (Hilfe: SymbolicC/ref/CGoto).

Mma verwendet Goto[] anscheinend nicht, es implementiert es nur.

Was heisst ernsthaft? Goto wurde gegeisselt, weil es keine Rücksicht auf Strukturen nehmen muss, z.B.

int i;
for ( i = 0; i < 100; i++) {
        doSomething( i);
        backAgain:
        i = doMore( i);
        if ( i > aLimit) {
                goto flyAway;
        }
}

while ( 1) {
        doThisSometimes( i);
        flyAway:
        i = doComplete( i);
        if ( i < aLimit) {
                goto backAgain;
        }
}

und daher das Schweizermesser der unstrukturierten Programmierung ist.

In diesem Sinne wird es heute nicht mehr "ernsthaft" verwendet.
Bei strukturierter Verwendung ist gegen goto nichts einzuwenden.

Gruss
Udo.

        



Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html