Popush优化开发笔记(一)

  我是清华软院22班的王程鹏。在本次Popush开发过程中,负责承担在Popush中添加Haskell文件选项,并且保证其可以正常运行。当初接到这个任务时,觉得有点像天方夜谭,远远超过了个人的能力。在后来的开发过程中,有了李映辉同学的帮助,同时也可以和其他组的同学沟通,这些都为我们任务的完成提供了积极有利的因素。

  这次优化开发,第一个难点在于如何正确配置好Popush。某天下午刘博格同学开始配Popush,很高效率地在三、四个小时之后配好了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是我们小组最先发现的,这与我们细致、严谨的态度都是密不可分的。

之后映辉还添加了hs文件的头像,使得界面更漂亮,这是我们超出任务完成的模块。在功能测试上,我们测试了C和C++的调试和运行,Ruby、Haskell、Python、Java的运行,以及文件的新建与删除。通过这些实践,我们大致弄清楚了Popush中的编译原理。首先根据文档的后缀名分清楚是否是可执行的文件。若是,则在运行的时候链接入对应的编译器,并将结果显示在下发的控制台上。消除Popush版本上的bug后,也可以在控制台上输入。

总体来说,这次优化开发很顺利,没有遇到太大的困难,但是也遇到一些小问题。吼吼,Popush优化结束咯!!!

时间: 2024-12-23 02:04:09

Popush优化开发笔记(一)的相关文章

web前端开发笔记(2)

web前端开发笔记(1) 一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必须闭合. 页面中不要用 进行缩进,如需缩进,用css控制. html标签使用必须语义化. 要为img标签填写alt和title属性. 二.HTML静态页面出现中文乱码如何解决? 引入<meta charset="UTF-8"> 三.通常情况下块属性标签和

【Kinect开发笔记之(二)】Kinect for windows发展历程

新版本SDK和旧版本的SDK完全兼容,如果您之前安装过旧版本的,可以直接安装新版本的SDK,但是如果您之前的开发版本是Beta版的,则需要卸载之后再安装新版本.在Kinect for Windows SDK 1.0版本中,SDK和示例文件是打包一起安装的.而在之后的版本,为了可以分别升级,微软把这两者分开独立为Kinect for Windows SDK和Kinect for Windows Developer Toolkit这两部分,所以需要分别下载安装, Kinect for Windows

Windows 8.1 store app 开发笔记

零.简介 一切都要从博彦之星比赛说起.今年比赛的主题是使用Bing API(主要提到的有Bing Map API.Bing Translate API和Bing AD API)设计移动应用(Windows store app和Windows phone app).从7月初开始设计到现在,应用的功能已经基本完成,就差美工来给界面优化一下.下面是我设计的应用的功能和实现的方法, 一.BING MAP API 作为一个以Bing Map API为主的应用,主要有以下的功能: 1.定位: 1 priva

安卓开发笔记——打造属于自己的博客园APP(四)

在上篇文章<安卓开发笔记——打造属于自己的博客园APP(三)>中,我们对博客文章的详情页和评论页进行了实现,慢慢的一个APP已经出现雏形了,当然这只是完成了"表面效果",要真正做好一个APP并不是一件很轻松的事情,有很多细节需要我们一点一滴的去完善. 好了,来讲下今天要完成的效果,在优化了之前部分代码的前提下,今天来说下关于博客搜索和博客详情页的实现,依旧国际惯例,来看下效果图:(动态图片比较大,加载需要点时间) 效果比较简单,很多东西我们还是可以复用之前的代码,毕竟这种列

PHP微信公众开发笔记(六)

PHP微信公众开发笔记系列 日期:2014.9.4 今天主要是完善了搜索,加入了管理员模块,优化了身份验证,将学生信息管理封装为了一个类(整这个真是好累呀,主要是数据库操作那里语法老是出问题,一直是各种小问题) 感受: PHP开发没有断点.不能及时打印log真是好累呀(我是用sublime写的,然后直接微信公众号调试,累屎我了),错误信息经常不能及时发觉.或者说有些问题能通过断点排除掉了没能够排除.但是也说明了,我写代码还是太马虎了啊. 2014.9.10整理笔记: 写这个笔记的时候,在赶功能,

PHP微信公众开发笔记(八)

PHP微信公众开发笔记系列 日期:2014.9.6 今天主要要做:建立关键词数据库.超时机制.优化的关键词匹配.表情信息数据库 要注意的:PHP echo之后并没有返回?还会继续执行?? 2014.9.11整理笔记: 写这个笔记的时候,在赶功能,所以也就是简单的记几笔当时的工作内容,现在功能开发得差不多了,就来整理之前的笔记.当时就很简单的记录了上文的那几句. 这天是周六,不加班了在租的房子里歇着.因为要过中秋了,在深圳的姐这天会过来我这边过节,所以这天也没多少时间来写功能.早上早起去跑步,然后

cocos2dx3.0 超级马里奥开发笔记(一)——loadingbar和pageview的使用

学完cocos2dx课程的第一个项目选择了超级玛丽.可以说有自己的想法,简单但是确实不简单. 我花了一天把一份2.1版本的超级玛丽源码升级到了3.0,改改删删,参考那个源码虽然好多不懂,但是马虎升级成功,游戏正常玩耍. 本着不为把游戏做出来而写代码的想法,罗列了一下这个游戏可以使用到的知识点.数据持久化的三种方式.loading页面.tmx地图解析.cocosStudio场景.屏幕适配.关卡如何选择.代码结构的优化(各种类的抽象继承),在基本功能出来后可以自己去设计变态关卡等. 两天实现了loa

Web应用程序性能优化学习笔记

Web应用程序性能优化学习笔记 1. 使用瀑布图初步诊断网站性能瓶颈 一般来说,打开一个网页的速度会受到以下几项的影响: 1) 服务器花了太长的时间将.aspx页面的内容转化为html. 2) .aspx页面花了太长的时间从服务器端将内容发送到客户端. 3) 页面上的图片或者flash文件花了太长的时间从服务器端发送到客户端. 4) JavaScript和CSS文件阻塞页面渲染. 我们可以使用“瀑布图”来确定一个页面的性能问题是由于哪一项造成的.FireBug.Chrome自带的“开发人员工具”

安卓开发笔记——打造万能适配器(Adapter)

为什么要打造万能适配器? 在安卓开发中,用到ListView和GridView的地方实在是太多了,系统默认给我们提供的适配器(ArrayAdapter,SimpleAdapter)经常不能满足我们的需要,因此我们时常要去继承BaseAdapter类去实现一个自定义的适配器来满足我们的场景需要. 如果你是开发一个简单点的APP还好,可能ListView和GridView的数量不会太多,我们只要去写几个BaseAdapter实现类就可以了. 但如果有一天,你需要开发一个APP里面具有几十个ListV