Welcher Dialekt von C ist Objective-C eine "strenge Obermenge" von?

8

Ich höre oft, dass Objective-C eine "strenge Obermenge" der Programmiersprache C ist. Es gibt mehrere Dialekte / Standards von C (dh K & amp; R, ANSI C, C90, C99, GNU-Erweiterungen ...); Objective-C wurde zuerst in den frühen 1980er Jahren entwickelt und muss daher diesen Standards vorausgehen. Objective-C 2.0 stammt jedoch aus den Jahren 2006 oder 2007 und könnte daher auf einem moderneren C-Dialekt basieren. Also, welches "C" ist Objective-C eine Obermenge von?

    
iPhone Developer 30.11.2010, 19:27
quelle

4 Antworten

7

Es gibt einen entsprechenden "Dialekt" von Objective-C für alle Standarddialekte von C.

    
Chuck 30.11.2010 19:31
quelle
2

Da die am häufigsten verwendeten Objective-C-Compiler (GCC und Clang) ebenfalls C-Compiler sind, könnte man sich vorstellen, dass sie die von diesen Compilern unterstützten C-Dialekte unterstützen. Apples Dokumentation besagt ausdrücklich:

  

Der Apfel   Compiler basieren auf den Compilern   der GNU Compiler-Sammlung.   Objective-C-Syntax ist eine Obermenge von   GNU C / C ++ - Syntax und das Objective-C   Compiler funktioniert für C, C ++ und   Objective-C-Quellcode. Der Compiler   erkennt Objective-C-Quelldateien nach   die Dateinamenerweiterung .m, genau so   erkennt Dateien, die nur enthalten   Standard-C-Syntax nach Dateiname   Erweiterung .c. Ähnlich der Compiler   erkennt C ++ - Dateien, die verwenden   Objective-C durch die Erweiterung .mm.   Andere Probleme bei der Verwendung von Objective-C   mit C ++ sind in "Verwendung von C ++   Mit Objective-C "

Also wird Objective-C in diesem Fall einfach als Erweiterung des C- oder C ++ - Compilers betrachtet, je nachdem, welche Sie als Basissprache wählen.

    
Clifford 30.11.2010 21:42
quelle
1

Was Sie suchen, ist nicht wirklich definiert. Objective C wird normalerweise für eine strenge Obermenge von ANSI-C gehalten (was dasselbe wie C90 ist). Objective C ist jedoch keine standardisierte Sprache oder etwas Ähnliches. Seine Beschreibung ist im Grunde genommen "Nimm C und füge diese Eigenschaften hinzu". Es ist daher abhängig von dem jeweiligen Compiler, den Sie verwenden.

    
Billy ONeal 30.11.2010 19:31
quelle
0

Nach " Learning Objective-C " von Apple :

"Objective-C ist eine Obermenge der ANSI-Version der C-Programmiersprache und unterstützt dieselbe grundlegende Syntax wie C."

    
bernie2436 28.11.2012 03:13
quelle

Tags und Links