Execution Model ပြောင်းလဲခြင်းများ
Execution Model ပြောင်းလဲခြင်းများ
Internal execution flow တွေဟာ ဒီနေ့ Python ရဲ့ standard implementation ကို သက်ရောက်စေပြီး Python Language ရဲ့လိုအပ်ချက်တစ်ခုလည်းမဟုတ်ပါဘူး။ ဒါကြောင့် execution model ဟာအချိန်နဲ့အမျှပြောင်းလဲစေခဲ့ပါတယ်။
Python Implementation Alternatives
Python ရဲ့ အဓိက implementations သုံးခု အနေနဲ့ CPython, Jython နဲ့ IronPython ဆိုပြီး ရှိပါတယ်။ CPython ကတော့ standard implementation ပါ။ တခြား implementation တွေမှာလည်းသူ့ ရည်ရွယ်ချက် နဲ့ လုပ်ဆောင်မှု အလိုက်ရှိပါတယ်။ အားလုံးကတော့ Python Language ပါပဲ ဒါပေမယ့် မတူညီတဲ့ပုံစံတွေနဲ့ program ကို execute လုပ်တာပါ။
CPython
CPython ကတော့ တခြားနှစ်ခုနဲ့ယှဉ်ရင်တော့ မူလ နဲ့ စံ ဖြစ်တဲ့ implementation တစ်ခုပဲဖြစ်ပါတယ်။ Portable ANSI C language code နဲ့ရေးထားတဲ့ အတွက်ကြောင့် CPython လို့ခေါ်တာပါ။ http://www.python.org ကနေ ActivePython distribution နဲ့အတူ download လုပ်ထားတဲ့ ဟာဆိုရင်တော့ အဲဒါ CPython ပါ။ Linux အများစု နဲ့ Mac OS X မှာဆိုရင်တော့နဂိုပါပြီးသားပါ။
စက်ထဲမှာနဂို install လုပ်ပြီးသားရှိနေတယ်ဆိုရင် အဲဒါ CPython ဖြစ်နိုင်ပါတယ်။ Python ကို Script Java သို့မဟုတ် .NET applications တွေနဲ့ မသုံးဘူးဆိုရင်တော့ စံဖြစ်တဲ့ CPython ကိုပဲသုံးချင်မှာပါ။ ဘာဖြစ်လို့လဲဆိုတော့ သူက reference implementation ဖြစ်ပြီး .. run တဲ့အခါမှာလည်း တခြား implementation တွေနဲ့ ယှဉ်ရင် အမြန်ဆုံး ၊ အပြည့်စုံဆုံး နဲ့ အကြီးမားဆုံးပါ။
Jython
Jython ကို မူလက JPython လို့သိခဲ့ကြပါတယ်။ Jython ဟာ Python ရဲ့ alternative implementation ဖြစ်ပြီး Java နဲ့ပေါင်းစပ်ဖို့ ရည်ရွယ်ခဲ့တာပါ။ Jython မှာ Java classes တွေပါဝင်ပြီး အဲဒီ classes တွေက Python source code တွေကို Java byte code အနေနဲ့ပြောင်းလဲပြီး Java Virtual Machine (JVM) ကိုပို့ပေးမှာဖြစ်ပါတယ်။ Python statements တွေကို .py text files အနေနဲ့ပုံမှန်အတိုင်းပဲ ရေးမှာဖြစ်ပြီး Jython system ကနေ .pyc byte code နဲ့ PVM (Python Virtual Machine) အစား Java-based equivalents အဖြစ် အစားထိုးမှာဖြစ်ပါတယ်။ Jython ရဲ့ရည်ရွယ်ချက်ကတော့ Python code တွေကို script Java applications အဖြစ်ပြောင်းဖို့ပဲဖြစ်ပါတယ်။ Java နဲ့ပေါင်းစပ်မှုဟာ လုံးဝ သိသာထင်ရှားမှုမရှိဘဲ တကယ့် Java Program run သလိုပဲထင်ရမှာပါ။ ဘာလို့လဲဆိုတော့ Python code တွေကို Java byte code အဖြစ်ပြောင်းလဲလိုက်လို့ပဲဖြစ်ပါတယ်။ Jython scripts တွေဟာ web applets နဲ့ servlets အဖြစ်ဆောင်ရွက်နိုင်မှာဖြစ်ပြီး Java-based GUIs တည်ဆောက်တဲ့နေရာမှာနဲ့ တခြားသောနေရာတွေမှာလည်းသုံးနိုင်မှာပါ။ ထို့ပြင် Python နဲ့ရေးနေသော်လည်း Java classes တွေကိုလည်း သုံးလို့ရမှာဖြစ်ပါတယ်။ Jython က CPython ထက်စာရင် ပိုနှေးပြီး CPython လောက်လည်းမကြီးပါဘူး။ ဒါပေမယ့် Java code ရဲ့ frontend အနေနဲ့ သုံးနိုင်မယ့် scripting language ကို ရှာဖွေနေတဲ့ Java developer တွေအတွက်ကတော့ အဓိက စိတ်ဝင်စားဖွယ်တစ်ရပ်ပါပဲ။
IronPython
တတိယ Python ရဲ့ implementation ကတော့ IronPython ပါ။ IronPython ကိုတော့ Microsoft ရဲ့ .NET Framework တို့ Linux ရဲ့ Mono တို့နဲ့ပေါင်းစပ်လို့ရအောင်ဒီဇိုင်းလုပ်ထားတာပါ။ IronPython ဟာ Python ကို client ရော server components အဖြစ်နဲ့ တခြား .NET Language တွေကနေပါ သုံးလို့ရအောင် လုပ်ထားပါတယ်။ IronPython မှာလည်း Jython လိုပဲ အနောက်နှစ်ဆင့်ဖြစ်တဲ့ byte code ပြောင်းတဲ့ နေရာနဲ့ PVM နေရာမှာ .Net environment အနေနဲ့ထုတ်ပေးမှာပါ။ ပြီးတော့ Jython လိုပဲ IronPython ကိုလည်း .NET components နဲ့ python ကိုပေါင်းစပ်ချင်တဲ့ developer တွေ အဓိက စိတ်ဝင်စားကြပါတယ်။ IronPython ဟာ တချို့ အရေးကြီးတဲ့ optimization tools တွေကို ပိုကောင်းအောင်တွန်းပို့ပေးနိုင်ပါတယ်။