Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Project Overview

TopCoder Competition Engine is a system used for Single Round Matches (SRM) and Marathon Matches (MM).

Originally, the TopCoder Competition Engine is only support five languages, C++, Java, Python, C# and VB.NET.

Recently, we have successfully added support for R Language.

We'd like to explore to support ANSI C in a series of contests.

Competition Task Overview

This contest is going to add support for compilation of ANSI C.

Object Oriented Programming

Our system is originally design to be Object Oriented only, that says the problem solution should  be followed by class style.  That is why we previously not support C language.

But for ANSI C, it is possible to do Object-Oriented Programming, see Object-Orientef Programming with ANSI C.

It is fine that the problem solution should follow proper pattern to represent class style.

MPSQAS Client Update

In order to support for arena applet for algorithm and Marathon Match Web interface, there are other places to change, but for this contest, these are out of scope.
You just need to make the compilation work in MPSQAS Client too.

For the contest, you just need to make the compilation support in MPSQAS Client, and SRM (Individual problem).

In the Solution tab, add an option ANSI C in the dropdown list, and make the Compile button work.

you'd better demonstrate various cases (valid and invalid) for compilation and success/error messages.

Verification

The SRM Problem Guide is provided in forum for your reference.

Reference

The previous submission for PoC Assembly - TC Competition Engine - R Lanauage Compilation Support will be provided in forum also. (the code change is already in github). but you can learn from the changes.

The following classes are related to code compilation.

  • dev\app\src\main\com\topcoder\server\ejb\MPSQASServices\MPSQASServicesBean.java
  • dev\app\src\main\com\topcoder\server\farm\compiler\CompilerInvoker.java
  • dev\app\src\main\com\topcoder\services\compiler\invoke\CodeCompiler.java
  • dev\app\src\main\com\topcoder\services\compiler\invoke\CPPCodeCompiler.java
  • dev\app\src\main\com\topcoder\services\compiler\invoke\PythonCodeCompiler.java
  • dev\app\src\main\com\topcoder\services\compiler\invoke\DotNetCodeCompiler.java
  • dev\app\src\main\com\topcoder\services\compiler\invoke\JavaCodeCompiler.java

also wrapper may need to be created, you can see existing wrappers here.

and the the related code

  • com.topcoder.services.compiler.util.LongContestCodeGeneratorHelper 
  • com.topcoder.services.compiler.util.CPPLongCodeGenerator

Winner Responsibility

Winner will be responsible to create pull request in final fix phase, and help with the merge.

About Code Base

For the code under /home/apps/dev directory, some are hosted in internal svn repositories, some are hosted in private repositories in github.

You can check Source Code Management For TopCoder Competition Engine - TopCoder Wiki

For SVN Access, please send request to support@topcoder.com, For github access, please post your github account in forum to ask PM to grant you access.

Arena VM Usage

Before asking your own VM, you need to have a public key on your profile before asking for the VM.

You can find more details on how to generate a key http://apps.topcoder.com/wiki/display/projects/Generate+SSH+Key and how to connect using it http://apps.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.

Please reference http://apps.topcoder.com/wiki/display/docs/Competition+Engine+VM+Setup for general usage.

Previously, we have made several update for the Arena VM.  So when the Arena VM allocated is available for you, there is a problem and a SRM contest already setup, you can reuse that for testing.



Final Submission Guidelines

Submission Deliverables

Below is an overview of the deliverables:

  • Code changes for support compilation of C language.
  • Sample ANSI Code for valid and invalid cases.
  • Detailed deployment guide for environment setup and functionality verification.
  • Working VM environment for verification.

Final Submission

For each member, the final submission should be uploaded to the Online Review Tool.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30042058