웹 컴파일러 만드려면?....예) codepad.org
글쓴이: ggochang / 작성시간: 수, 2010/11/10 - 2:28오후
안녕하세요
웹 컴파일러를 아시는지요..?
대표적인 사이트는 아래의 사이트입니다.
http://codepad.org
제가 이번에 이런 웹컴파일러를 만들어야 합니다만
codepad에서 지원하는 언어는
c, c++, D, Haskell, Lua, OCaml, PHP, Perl, Plain Text,
Python, Ruby, Scheme, Tcl 이렇게 있습니다
저는 c, c++ 이것 두개만 지원가능하도록 만들생각입니다만
어떻게 만들어야 하는지 감이 안잡히네요
php에 c 컴파일러 라이브러리가 있다고 들었습니다만
!!!! 제가 생각한 방법은 !!!!!!
웹에서 작성한 코드를 서버로 보내면
서버에서 컴파일하고 결과값을 클라이언트(웹)으로 보내주는 방식으로 할려 했습니다
이게..가능할런지요..?
서버가 코드를 받아서 그것을 다시 컴파일 할수 있나요..?
---정리---
1) 클라이언트(웹) -> 서버로 코드전송
2) 서버(WAS) 코드를 받아서 컴파일
3) 결과값을 클라이언트(웹)으로 전송
4) 클라이언트(웹)에서 결과값을 받은뒤 출력
참 오묘......합니다. 여러분 도와주십시요.
Forums:
지나가던 사람
http://ideone.com/
그런 부분보다... 시스템 망가트리는 코드가 실행되지
그런 부분보다...
시스템 망가트리는 코드가 실행되지 않도록 하는 부분에 더 고민해야 할 겁니다.
> 서버에서 컴파일하고 결과값을 클라이언트(웹)으로
> 서버에서 컴파일하고 결과값을 클라이언트(웹)으로 보내주는 방식으로 할려 했습니다
결과값이라는 것이...? 컴파일된 바이너리를 말하는 것이라면 그냥 컴파일된 파일을 응답으로 주면 되지요.
어려울 것 전혀 없어보이는데요. PHP라면 exec 이나 system 함수를 쓰시면 되겠네요.
컴파일후 컴파일된 코드를 실행하고 그 결과를 보내주는 것이라면
위에 분이 쓰셨듯이 서버에서 위험한 작업이 실행되는 것을 막는 것에 신경을 써야지요.
사용할 수 있는 CPU 시간, 메모리양, 디스크 접근, 네트워크 접근 등등 리소스에 제한을 둬야지요.
웹프로그래밍 언어에서 직접 구현하기보다는 OS가 제공하는 권한/보안 기능을 잘 활용하셔야할겁니다.
일부 기능을 막아버리기보다는 chroot등을 써서
일부 기능을 막아버리기보다는 chroot등을 써서 지워져도 쉽게 복구가능 하도록 하면 재밌겠네요.
제가...
제가 말씀하신 내용과 비쓰무레한...기보다 동일한 내용으로 대학 졸업작품을 하고, 교수님들이 좋아라해서 1등도 하고...등등
네. 가능합니다.
ICPC Judge System 이나, MOSS 와 같은 Plagiarism Detection 소프트웨어나 툴 등을 찾아보세요.
( CloneChecker 는 비추!! 관리안되고 있고 버그도 꽤 있고, ML 도 알아야 하고... )
고민해볼 사항!!
1. 잡학다식하지 않으면 매우 힘듬!! ( 위의 내용을 고민하시는 것을 보아서 포기할 것을 권장함. )
2. VM 환경구축으로 시스템 안정성과 멀티플랫폼 지원
3. 컴파일을 서버사이드에서 할지, 클라이언트사이드(크로스컴파일)에서 할지...
4. 정적분석을 해서 런타임시 나타날 수 있는 사이드이팩트, 메모리릭.. 등을 사전 검증. 최소한 splint 정도라도...
5. 컴파일은 컴퓨팅파워가 많이 필요함. distgcc, ccache 와 같은 분산&캐싱 컴파일을 고려해 봄.
6. 컴파일러 종류, 옵션, 버전, target .. 등은 사용자로부터 받을건지, 말건지...
7. 그외 기타등등
http://kldp.org/node/123301
http://kldp.org/node/123301
여기에 gcc를 올리시면 될듯
피할 수 있을때 즐겨라! http://melotopia.net/b
거기서는 이미 gcc가 됩니다. gcc가 아니라 아마
거기서는 이미 gcc가 됩니다. gcc가 아니라 아마 tcc일듯.
http://sourceforge.net/search
http://sourceforge.net/search/?q=online+compiler
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
댓글 달기