Jun 18

felixoj: judge is ready for use! 不指定

felix021 @ 2009-6-18 15:18 [IT » 操作系统] 评论(2) , 引用(0) , 阅读(6821) | Via 本站原创 | |
@ 20091020 一直忘了补充一下,这个oj还是有问题的。

大概从什么时候开始,想写一个自己的OJ?

应该是从snoopy的flood开始的事情吧。
看了他的毕设论文,了解了一些该了解的东西。
然后我把马陈原来就很ooxx的web那一块的代码修改得更ooxx
然后flood终于不能再用了,决定回oak
可是snoopy把服务器重装了,oak的judge和daemon都没了
幸而不知道从什么地方找出了一个很ooxx的judge
虽然编译都不能通过,但是大体框架还在
于是就把那个judge看了过去,改来改去终于可以运行了
再修正一些BUG,judge总算是可以用了
然后再用java重写了一个daemon,终于把oak架起来。

在这个过程中发现很多问题,于是萌生了自己写OJ的想法。
最近这些天看了很多Linux开发的书
学会了包括wait, ptrace, setrlimit, setitimer等系统调用
----虽然以前都知道有这些东西,但是一直没有去写过
于是终于觉得量变到点了,该质变了
再加上还有sempr大牛的hustoj,节省了许多时间(syscall的列表...)
于是就在一天内写出了这个800行的judge
或者也可以说是copy sempr的judge吧,因为judge的整个流程基本一样。

写这个judge之前我已经思考了很多东西了,重点是架构的设计
我希望把judge设计成一个完全独立的程序,只负责跑程序,判输出
可惜由于RF的问题,judge还是没法和语言独立开来。
但是总的来说,这个judge和我接触过的oj的设计都不一样
它不负责任何与数据库有关的东西,只做该它做的事情
这样的好处是实现起来更加简单
由于其独立性,还可以配合不同的front-end,实现不同的judge
比如设计一个Personal版的,不需要web和daemon
这样可以进行offline judge,让acmer知道程序跑得是否正确,时间内存使用如何...

目前的这个效果是比较令我满意的,完成了一个judge该有的功能,包括spj。
felixoj(这个名字很挫吧。。。)的其他部分
比如Web, DB, Daemon, JudgeWrapper暂时没有时间去做了
预计留在暑假慢慢实现
如果你有兴趣测试使用这个judge,可以到felixoj的google code主页去:

http://felixoj.googlecode.com



欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
ada008
2009-10-20 10:07
从google code 跑到这里的人飘过 ~~
felix021 回复于 2009-10-20 10:19
这个Judge还是有bug
snoopy
2009-6-18 18:59
其实, 我想... flood 的 judge 是可以独立的...
felix021 回复于 2009-6-18 19:27
但是要从您那一万多行代码里面提取800行代码出来,我还是觉得重写比较划算。。。
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]