標註語
標註語(英文:directive)喺程式編寫,係指一啲技術上唔屬於用緊嘅嗰隻程式語言,但係對處理嗰篇源碼嘅某隻軟件係一種有語義嘅命令嘅一啲形式上嘅表示方法(formal notation)。標註語通常係一種有特定格式嘅註釋,而對象軟件通常係組合器或者編譯器(可能係限於某牌子或者某廠商嘅組合器或者編譯器)。
喺組合語言,標註語亦都包括咗一啲睇落好似命令,但係並唔對應嗰隻處理器嘅任何行動碼嘅嘢,爾種形式上有語法嘅標註語亦都叫 「類行動碼」(pseudo-op)[1]:157。類行動碼算係標註語係因為組合語言只係符號化嘅機器語言,但係類行動碼嘅語義喺對應嘅機器語言並唔存在。
喺一啲高級語言,爾種 「查實係一種命令但係技術上又唔正式屬於嗰隻語言」 嘅嘢可以喺嗰隻語言有一種正式嘅句法,爾種有正式句法但係只係例如控制個編譯器點運作嘅標註語叫 pragma。
例
[編輯]形式上係註釋嘅標註語
[編輯]形式上係註釋嘅標註語,喺編譯語言嘅例子可以喺一啲比較舊嘅編譯器搵到,例如,喺 Turbo Pascal,程式入面可以寫
- (*$I-*)
咁嘅寫法喺形式上係註釋,理論上唔應該有任何語義,但係對 Turbo Pascal 嘅編譯器,就係一個命令,表示如果做一啲I/O嘅動作,個程式自己會測有冇發生輸入或者輸出錯誤,叫個編譯器唔好編到啲機器碼係一出錯就會整死個程式嗰種[2]。
直譯語言嘅例子可以有 PostScript 嘅 DSC,例如
- %%Pages: 10
喺形式上係註釋,所以對 PostScript 直譯器本身並冇任何語義,但係如果其他 DSC 喺格式上冇寫錯,爾句嘢對處理嗰篇源碼嘅點綫影像處理器(RIP)就係一個標註語,話畀架 RIP 知篇源碼會印10版紙嘅輸出。
類行動碼
[編輯]喺組合語言,其中一個最常用嘅類行動碼就係 equ,例如,喺蘋果公司嘅 UCSD p-System 入面,組合語言嘅程式可以寫
- FOO .EQU 123
睇落好似常嘅組合語言,但係佢只係話畀個組合器知,爾行之後,FOO 爾個名代表 123 爾個數值,並唔對應任何嘅機器碼,其他嘅類行動碼可以係預留空位、控制某段碼淨係喺某種情況之下先用、或者提供巨集功能等等[1]:158–172。
Pragma
[編輯]直譯嘅 pragma 例子可以包括例如 Perl 嘅 use 同 no 句法,用來控制個直譯器嘅運作模式。例如,程式入面可以寫
- use integer;
係話畀個直譯器聽,同一個作用域(scope)入面,喺爾行開始,所有運算都係當整數,直至用 「no integer;」 取消整數模式或者個作用域完咗為止。