Popush優化開發筆記(一)

  我是清華軟院22班的王程鵬。在本次Popush開發過程當中,負責承擔在Popush中添加Haskell文件選項,而且保證其能夠正常運行。當初接到這個任務時,以爲有點像天方夜譚,遠遠超過了我的的能力。在後來的開發過程當中,有了李映輝同窗的幫助,同時也能夠和其餘組的同窗溝通,這些都爲咱們任務的完成提供了積極有利的因素。前端

    此次優化開發,第一個難點在於如何正確配置好Popush。某天下午劉博格同窗開始配Popush,很高效率地在3、四個小時以後配好了Popush。彭友在Linux下也配好了Popush。他們配置工做的順利進行爲咱們的工做的開展打下基礎。後端

      在Popush網站上註冊後登錄,發現其支持多種語言,能夠在鏈接好外接編譯器後,將Popush中的代碼放入外接編譯器中編譯運行。開始時,咱們發現了只要安裝好對應語言的編譯器,並將編譯器的路勁放進系統的環境變量中,即可以在Popush平臺中運行代碼。這點啓發了我和同伴。剛開始時我嘗試在前端看一些圖片或者分析一些相應,但最都沒有頭緒。上面的啓示說明:不一樣的語言在後端處理的方式必定是等同的,很大程度上會用數組或者case語句描述。帶着這個想法,咱們開始逐個文件查找,直到找到models文件夾下的runner.js文件,在裏面找到了期待已久的大段case語句,接着在裏面加上包括haskell的語句塊。數組

      可是,這樣作並無徹底解決問題,haskell程序仍是不能正常運行。後來發如今data.js文件中須要將hs添加到app.RunableExt中。這樣在連接好本地編譯器以後,即可以在Popush中編譯haskell程序了。不過咱們發現,原來的程序只能編譯,不能在Popush中不能輸入,這對於Haskell這樣的函數式語言來講,這樣的平臺幾乎沒用,由於函數須要輸入函數名稱和參數才能發揮做用。咱們把這個bug反映給助教,以後助教給的回覆是Popush這個版本原有的bug。Yeah,這個bug是咱們小組最早發現的,這與咱們細緻、嚴謹的態度都是密不可分的。app

      以後映輝還添加了hs文件的頭像,使得界面更漂亮,這是咱們超出任務完成的模塊。在功能測試上,咱們測試了C和C++的調試和運行,Ruby、Haskell、Python、Java的運行,以及文件的新建與刪除。經過這些實踐,咱們大體弄清楚了Popush中的編譯原理。首先根據文檔的後綴名分清楚是不是可執行的文件。如果,則在運行的時候連接入對應的編譯器,並將結果顯示在下發的控制檯上。消除Popush版本上的bug後,也能夠在控制檯上輸入。函數

      整體來講,此次優化開發很順利,沒有遇到太大的困難,可是也遇到一些小問題。吼吼,Popush優化結束咯!!!測試

相關文章
相關標籤/搜索