Physical computing ︰ python 《補充》︰ IDE 除錯

根據 WiKi 百科︰

在計算機科學裡,『內省』 Type introspection 是指程式在執行中 Run time 檢查『物件』 Object 類型的一種能力。相對於『內省』,『反射』 Reflection 則更進一步,它在程式在執行中,還可以檢視和修改本身的『狀態』或『行為』。

在《CPU 機器語言的『解譯器』》一文裡,我們提到︰

事實上 Von Neumann 的計算機架構,對於電腦程式語言的發展,有著極為深遠的影響,產生了現在叫做 Von Neumann 程式語言,與Von Neumann 的計算機架構,同形 isomorphism 同構

program variables ↔ computer storage cells
程式變數 對映 計算機的儲存單元

control statements ↔ computer test-and-jump instructions
控制陳述 對映 計算機的『測試.跳至』指令

assignment statements ↔ fetching, storing instructions
賦值陳述 對映 計算機的取得、儲存指令

expressions ↔ memory reference and arithmetic instructions.
表達式 對映 記憶體參照和算術指令

由於機器語言內,並不區分『指令』與『資料』,而且一般多以『二進制』的數值表達,因此都是『反射』的。之後的一些高階語言,比方說 C ,區分了『指令』和『資料』,這個『反射』的能力就逐漸消失了。一九八二年 Brian Cantwell Smith ── 現是加拿大‧多倫多大學教授 ── 在博士論文中介紹了『程式語言』的計算『反射』的這種概念,此後常用在『元編程』 metaprogramming 、『自循環直譯器』 Meta-circular evaluator 以及『軟體測試』 software testing 中。

舉例來說『 PyPy 』是 rPython 寫的 Python 解譯器,可以用來好好的 Hack Python !一年前,由於『樹莓派基金會』的贊助,因而也有了 ARM 的版本。

事實上, Python 語言高度支持『內省』與『反射』,在此僅列出幾個鏈結給有興趣的讀者︰

inspect — Inspect live objects

Dive Into Python

Python Programming/Reflection

雖然目前『 Ninja-IDE 』上沒見到『內省』或『反射』功能,據聞『 NINJA-IDE 3.0 』將包含一些新的特色,就讓我們拭目以待的吧!

也許『 Ninja-IDE 』的想法是︰打造自己的 IDE ,所以詳細說明了如何寫作插件《 Plugin Tutorial 》,這也是了解忍者 IDE 運作方式的文件。此處我們將介紹一個『 ninja-debugger-plugin 』,安裝方法十分簡單,在主選單裡選擇【 Addins 】‧【 Manage Plugins 】,然後點選『 ninja-debugger-plugin 』插件,按 Install 鍵即可。如何操作『除錯器』?就請讀者自行閱讀《 Starting to debug 》一文的了。

Plugins Manager_050

NINJA-IDE - -home-casey-temp-mp3-28-fractal.py_076

 

 

─── 自得者,家有敝帚,享之千金。 ───