Инструменты для выполнения фрагмента кода - PullRequest
11 голосов
/ 05 ноября 2008

Под «выполнением фрагмента кода» я подразумеваю возможность написать несколько строк кода, запустить и протестировать его без необходимости запуска IDE и создания фиктивного проекта.

Это невероятно полезно для помощи людям с небольшим образцом кода без создания проекта, аккуратной компиляции, отправки им фрагмента кода и удаления проекта.

Я не спрашиваю о лучших фрагментах кода или редакторе фрагментов или о том, где хранить фрагменты!

Для C # я использую Snippet Compiler .

Для Java я использую Eclipse Scrapbook .

Для LINQ я использую LINQPad .

Есть предложения по другим (лучшим?) Инструментам? например есть ли для Java один, который не включает запуск Eclipse?

А как насчет C?

Ответы [ 6 ]

4 голосов
/ 28 декабря 2010

Попробуйте ideone . Он может запускать ваш код на стороне сервера на более чем 40 языках программирования, включая C и Java (это бесплатно для индивидуального использования).

3 голосов
/ 05 ноября 2008

Для C браузер http://codepad.org/ действительно превосходен. Выполняет код и все.

1 голос
/ 09 ноября 2008

Я иногда хочу попробовать что-то очень короткое, чтобы подтвердить семантика. Так как создание временного файла и размещение в шаблон занимает более 30 секунд, у меня есть этот сценарий:

#!/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} "$@"
${out} "$@"
#rm ${out} ${src}

Пример вызова (этот код статически инициализирует массив указателей на функции) выглядит следующим образом:

$ 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

Если я хочу внести небольшие изменения, я просто редактирую командную строку. Если это станет громоздким в командной строке, я отредактирую временный файл, в данном случае /tmp/ccrun-6nT4Wo.c. Командная строка аргументы для исполняемого файла могут быть даны после программы (сначала аргумент). Исполняемый файл остается на месте, чтобы его можно было запустить без перекомпиляции. Вы можете сделать что-то подобное для любого язык.

1 голос
/ 05 ноября 2008

Для выполнения фрагментов JavaScript я использую большинство Firebug и консоль Google Chrome JavaScript.

Для F # я использую Интерактивная консоль .

0 голосов
/ 12 октября 2009

Для Python и Sage попробуйте http://live.codenode.org. Это также проект с открытым исходным кодом, лицензированный по BSD, поэтому его можно загрузить и запустить с вашего собственного компьютера, более подробная информация здесь: http://codenode.org

0 голосов
/ 05 ноября 2008

В Ruby вы можете использовать Интерактивная оболочка Ruby .

Похоже, что гуру из моно-проекта ушли и сделали C # интерактивным . YAY

...