2008-11-05 8 views
11

Por "ejecución de fragmento de código", me refiero a la capacidad de escribir unas pocas líneas de código, ejecutarlo y probarlo sin tener que iniciar un IDE y crear un proyecto ficticio.Herramientas para la ejecución del fragmento de código

Es increíblemente útil para ayudar a las personas con un pequeño código de muestra sin crear un proyecto, compilando todo limpiamente, enviándoles el fragmento de código y eliminando el proyecto.

No estoy preguntando sobre los mejores fragmentos de código o un editor de fragmentos o dónde almacenar los fragmentos!

Para C#, uso Snippet Compiler.

Para Java, utilizo Eclipse Scrapbook.

Para LINQ, uso LINQPad.

Cualquier sugerencia para otras (¿mejores?) Herramientas? p.ej. ¿Hay uno para Java que no involucre el encendido de Eclipse?

¿Qué pasa con C?

+0

relacionado: [¿Hay algún buen IDE en línea?] (Http://stackoverflow.com/questions/491721/) –

Respuesta

3

Para C, el http://codepad.org/ en el navegador es realmente excelente. Ejecuta código y todo.

1

Para la ejecución de fragmentos de JavaScript utilizo la mayoría de las Firebug y la consola de Google Chrome JavaScript.

Para F # utilizo el Interactive Console.

1

A veces quiero probar algo muy corto solo para confirmar semántica. Desde la creación de un archivo temporal y poniendo en la repetitivo tarda más de 30 segundos, tengo este script:

#!/bin/sh 

body="$1" 
out=$(mktemp /tmp/ccrun-XXXXXX) 
src=${out}.c 
cat > ${src} <<EOF 
#include <limits.h> 
#include <string.h> 
#include <math.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <stdint.h> 

#define UNUSED __attribute__((unused)) 

int main(int UNUSED argc,char UNUSED *argv[]) 
{ 
EOF 
echo "$body" >> ${src} 
echo -e "return 0;\n}" >> ${src} 
cc -std=c99 -Wall -Wextra ${CCRUN_FLAGS} -o ${out} ${src} -lm 
shift 
echo ${out} "[email protected]" 
${out} "[email protected]" 
#rm ${out} ${src} 

Una invocación de la muestra (el código inicializa estáticamente una matriz de punteros de función) se parece a:

$ ccrun 'int f(int a){return a+1;} int g(int a){return a+2;} int (*farr[2])(int) = {f,g}; for (int i=0; i<2; i++) printf("%d %d\n",i,farr[i](i));' 
/tmp/ccrun-6nT4Wo 
0 1 
1 3 

Si quiero hacer pequeños cambios, solo edito la línea de comandos. Si se vuelve poco manejable en la línea de comandos, editaré el archivo temporal , en este caso /tmp/ccrun-6nT4Wo.c. Los argumentos de línea de comando al ejecutable se pueden dar después del programa (primer argumento ). El ejecutable se deja en su lugar para que se pueda ejecutar sin volver a compilar. Puede hacer algo similar para cualquier lenguaje .

4

Pruebe ideone. Es capaz de ejecutar su código en el lado del servidor en más de 40 lenguajes de programación, incluidos C y Java (es gratis para uso individual).

Cuestiones relacionadas