極速下載站 —— 提供優(yōu)質(zhì)軟件下載服務(wù),感受全新的極速下載體驗(yàn)!
最近更新 | 軟件專(zhuān)題 | 軟件分類(lèi) | 軟件排行
MOP是小型Matlab和八度到Python編譯器。
SMOP將matlab轉(zhuǎn)換為python。 盡管matlab和數(shù)字python之間有明顯的相似之處,但是在現(xiàn)實(shí)生活中有足夠的差異使手工翻譯不可行。 SMOP生成人類(lèi)可讀的蟒蛇,這似乎也比八度更快。 只是有多快? 表1顯示了“移動(dòng)家具”的計(jì)時(shí)結(jié)果。似乎對(duì)于這個(gè)程序,python翻譯導(dǎo)致了大約兩倍的加速,并且通過(guò)將SMOP運(yùn)行時(shí)庫(kù)runtime.py編譯為C實(shí)現(xiàn)了另外兩倍的加速, 使用cython。 這個(gè)偽基準(zhǔn)測(cè)量的是標(biāo)量性能,我的解釋是標(biāo)量計(jì)算對(duì)八度小組的興趣不大。
功能說(shuō)明
少于五千行的Python代碼
SMOP不會(huì)假裝與matlab或八度等拋光產(chǎn)品競(jìng)爭(zhēng)。然而,這不是一個(gè)玩具。有一個(gè)盡可能接近原始matlab語(yǔ)義的嘗試。 Matlab語(yǔ)言定義(從未發(fā)布afaik)充滿了黑暗的角落,SMOP試圖盡可能精確地遵循matlab。
也有一個(gè)價(jià)格。
生成的源代碼是matlabic的,而不是pythonic,這意味著圖書(shū)館維護(hù)人員必須流利地使用這兩種語(yǔ)言,并且老的開(kāi)發(fā)環(huán)境必須被保留。
生成的程序是pythonic還是matlabic?
例如應(yīng)該數(shù)組索引從零開(kāi)始(pythonic)還是一個(gè)(matlabic)?
現(xiàn)在我相信,在生成的Python源代碼中,一些matlab的重音是不可避免的。想象一下matlab程序使用正則表達(dá)式,matlab風(fēng)格。我們不打算把它們翻譯成python風(fēng)格,并且這個(gè)代碼將永遠(yuǎn)留下來(lái)提醒程序的matlab起源。
另一個(gè)例子。 Matlab代碼打開(kāi)一個(gè)文件; fopen錯(cuò)誤返回-1。 Pythonic代碼會(huì)引發(fā)異常,但我們不打算這樣做。相反,我們將與口音生活在一起,而smop把這個(gè)放到了極點(diǎn) - matlab程序大部分保持不變。
事實(shí)證明,生成matlabic允許將大部分項(xiàng)目復(fù)雜性從編譯器(已經(jīng)足夠復(fù)雜)轉(zhuǎn)移到運(yùn)行時(shí)庫(kù)中,在運(yùn)行時(shí)庫(kù)中幾乎不存在庫(kù)部件之間的交互。
官方網(wǎng)站:https://pypi.python.org/pypi/smop/0.26.2
相關(guān)搜索:編譯