Bode's Online Judge Core Engine (Judge Engine Dynamic Link Library)
在线评测系统核心引擎
Beta Publish
测试版公布
一、 用途
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
VB8: 8.0.50727.1433 (Microsoft® Visual Studio® 2005)
JAVA: jdk
将来更会加入更多的支持可能
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月
上海世界外国语中学在线评测系统使用了本引擎
五、 获取
如果你希望了解更多关于本系统的相关信息,请直接联系我。(MSN/Email: i@bodesmile.com)
由于包含了编译器的版本过大,所以只提供没有编译器的版本下载,如果需要相应的编译器,可以联系我,或自行下载(不推荐)。
本地下载 (只包含C#8、VB8编译器,需要先安装.net f2.0)