Bode's Online Judge Core Engine

Posted by Bode Published on November 28, 2008

图片

这是一套在Windows平台下Online Judge系统的评测子系统,可用于需要批量校验代码的运行结果的场合,比如Online Judge在线评测系统或自动化测试系统等。
因为历史比较久远,本系统已停止维护
提供全系统及源代码下载

一、         用途
Windows平台下Online Judge系统的评测子系统,一般用于校验待检测代码的运行结果。

二、         方法
传入预期文件,待检测代码和对应编译器,就可获得代码运行结果。

三、         特色
A.       完备的功能性设计:
1. Online Judge任务无须人工干预。自动编译源文件,自动运行客户程序,自动效验答案,自动回收资源。
2.支持编译器扩展,当前支持的编译器有
GCC: 3.4.5 20060117 (http://gcc.gnu.org/)
VC8: 8.00.50727.42 (Microsoft® Visual Studio® 2005)
CS8: 8.0.50727.1433 (Microsoft® Visual Studio® 2005)
FPC: intel/i386 2.2.0 (http://www.freepascal.org/)
VB8: 8.0.50727.1433 (Microsoft® Visual Studio® 2005)
JAVA: jdk1.5.0_15
将来更会加入更多的支持可能
3.支持使用多组测试数据一次性完成Judge过程。
4.支持Special Judge。(需自行提供Special Judge的源代码或可执行文件)
5.当用户程序占用的系统资源(如CPU时间、内存等)超过限制时,及时终止用户程序,发出相应的“超时(Time Limit Exceeded)”、“超内存(Memory Limit Exceeded)”、“输出文件过大(Output Limit Exceeded)”,并能给出实际的CPU、内存占用情况数据。
6.提供任务缓冲功能,即使有任务在执行,也能添加新的任务。
7.提供完善的日志功能,当Judge系统发生错误时可以迅速定位。

B.       良好的安全性保护
1.防止用户程序取得除预期输入文件之外服务器上的任何文件信息或配置信息。更不能对服务器上的文件进行修改删除等操作。
2.用户程序不会在服务器上创建任何文件。所有输出一律使用标准输出。
3.防止用户程序创建子进程。
4.防止用户程序调用系统API。
5.防止用户程序无意中对于系统的破坏,如缓冲区溢出等。
6.防止其他可能危害系统安全的行为发生。

C.      超强的稳定性保证
1.系统可以长时间的连续、稳定、无错的工作。
2.无论Online Judge系统刚刚启动还是已经连续运行了几十个小时,同样的用户代码多次重复Judge,运行结果相同,运行参数(运行时间和内存占用)基本一致。

D.      极佳的效率性表现
1.系统具有较高的运行效率。
2.在相同配置的机器上,无论是在Online Judge系统中,还是单独运行,用户程序的执行时间,资源占用相当。
3.系统空闲时,占用极少的系统资源。
4.系统在空闲时接受到任务能够快速响应。

E.       开放的第三方接口
1.引擎可以方便的部署。
2.引擎可以方便的添加、移除第三方编辑器。
3.预期文件、预期输出以及Special Judge的支援代码可以方便的组织。
4.提供方便的接口供第三方程序调用。

四、         历史
起源于大学时的毕业设计(Since 2006)
现版本完成于2008年5月
上海世界外国语中学在线评测系统使用了本引擎

五、         获取
年代久远的项目,提供完全环境和源代码下载,但不能提供任何技术支持,尽供个人研究学习。

某个版本完全包下载,不确定可用性。

judgeservice.rar
File Size: 72110 kb
File Type: rar

Download File


某个版本的全部源码下载,同样不确定可用性,仅供参考,
judge0.9.9.1999.rar
File Size: 1482 kb
File Type: rar

Download File


分享到