Libtcc and gwan

Post on 05-Dec-2014

1.517 views 4 download

description

 

Transcript of Libtcc and gwan

libtcc AND GWAN

charsyam@naver.com

Language Java JavaScript

C Scala

Platform Node.js Django Play

Tcc: Tiny C Compiler

1. C Script Support

C Script #! /usr/bin/tcc -run int main() { printf("Hello World\n"); return 0; }

Tcc: Tiny C Compiler

2. Dynamic Code Generation

int add(int a, int b) { return a + b; } char my_program[] = "int foo(int n)\n" "{\n" " printf(\"Hello World!\\n\");\n" " printf(\"fib(%d) = %d\\n\", n, fib(n));\n" " printf(\"add(%d, %d) = %d\\n\", n, 2 * n, add(n, 2 * n));\n" " return 0;\n" "}\n";

Code Generation

TCCState *s; s = tcc_new(); tcc_set_output_type(s, TCC_OUTPUT_MEMORY); if (tcc_compile_string(s, my_program) == -1) return 1; tcc_add_symbol(s, "add", add); size = tcc_relocate(s, NULL); if (size == -1) return 1; mem = malloc(size); tcc_relocate(s, mem); func = tcc_get_symbol(s, "foo"); if (!func) return 1; tcc_delete(s); func(32); free(mem);

Code Generation

charsyam@charsyam-lv63:~/repo/libtcc$ ./a.out Hello World! fib(32) = 2178309 add(32, 64) = 96

Code Generation

GWan

Web Application Server

GWan Support Scripting

C Java Object C

GWan wget http://gwan.com/archives/gwan_linux64-bit.tar.bz2 tar -xjf gwan_linux64-bit.tar.bz2 cd gwan_linux64-bit sudo ./gwan (./gwan -h for help)

Need javac, gobjc, gobjc++

GWan charsyam@ubuntu:~/apps/gwan/0.0.0.0_8080/#0.0.0.0/csp/folder$

실제 핸들러 위치

Thank You!