[squeak-dev] [Pharo-dev] Pragma keyword / selector / methodSelector
Tobias Pape
Das.Linux at gmx.de
Tue Nov 15 21:20:44 UTC 2016
On 15.11.2016, at 22:08, Denis Kudriashov <dionisiydk at gmail.com> wrote:
>
> 2016-11-15 21:58 GMT+01:00 Tobias Pape <Das.Linux at gmx.de>:
> Here's my 2ct:
>
> 1. Pragmas aren't actually pragmas. They do not instruct the compiler to do things (_except_ for primitive: and apicall:, but these are now outliers).
> They rather add metadata to a (compiled) method.
> 2. The 'thing' (ie, class) should probably be named
> MethodAnnotation
> 3. We can have the cake and eat it to:
>
> Rename Pragma -> MethodAnnotation.
> Make Pragma a new subclass of MethodAnnotation.
> Make MethodAnnotation implement
> #methodSelector
> #annotationSelector (or #selector, if it must be)
> Make Pragma implement
> #selector
> #keywords
>
> I remember long discussion about Pragma vs Annotation name where Igor won completely :)). Conclusion was that Pragma is a right name.
The German wiktionary is more on the compiler-side:
* Pragma: eine Steueranweisung im Quellcode für einen Compiler oder einen Interpreter, die den Programmablauf nicht direkt beeinflusst, die aber Auswirkungen auf bestimmte Überprüfungen des Quellcodes hat
(Control statment for compiler/interpreter that does not directly change control flow but has effect on code checking)…
Sources for this usage:
* „Ein Pragma - auch Pseudo-lnstruktion genannt - leitet einfach Informationen an den Compiler weiter und wird nicht zu einem Teil des ausführbaren Programms.“ [Steven Feuerstein, Bill Pribyl: Oracle PL/SQL Programmierung (Safari Books Online), 2. Auflage 2003, ISBN 389721184X, Seite 85]
(a pragma - aka pseudo instruction - directs simple information to the compiler and _will not be part_ of the executable) (emphasis mine)
English wiktionary likewise:
• (computing, programming) A compiler directive; data embedded in source code by programmers to indicate some intention to the compiler.
This pragma stops the compiler from generating those warnings we don't care about.
And also wikipedia:
https://en.wikipedia.org/wiki/Directive_(programming)
¯\_(ツ)_/¯
Best regards
-Tobias
More information about the Squeak-dev
mailing list
|