コンパイルしないC言語

  • 12
    Like
  • 0
    Comment
More than 1 year has passed since last update.

オリジナルはkazuho/Cです。

makeを再開発する記事を見たときに、2003年ころC言語をオンザフライでコンパイルしてワンライナーが書けるようなものがあったのを思い出してぐぐってみたけど見つからなかったので、代替するものを探してみんとす。

ちなみに似たものを再現してみた。このようにフィルタコマンドとして使えなくもないが、シェル芸向きではないと強く思う。

~/s/c ❯❯❯ echo "Hello world" | ./c 'char x[256];fgets(x,sizeof(x),stdin);puts(x)'
Hello world
#!/usr/bin/env bash

temp=$(mktemp /tmp/cXXXXXX)

{
  echo '#include <stdio.h>'
  echo 'int main(int argc, char *argv[]){'
  echo $@
  echo ';}'
} >> $temp.c

#cat $temp.c

{
  cc -o $temp.o $temp.c
  $temp.o < /dev/stdin
}

同様に、明示的にコンパイルしないプロダクトも幾つかあるようだ。

ryanmjacobs/c
https://github.com/ryanmjacobs/c

.cをccして.oを実行するだけのやつ。C言語をシーバンで実行できる。ググラビリティ…。

picoc
https://github.com/zsaleeba/picoc

インタプリタ。

CINT
https://root.cern.ch/drupal/content/cint

C,C++インタプリタ。

Cling
https://root.cern.ch/drupal/content/cling

C++インタプリタ。LLVMベース。

StudyC
http://www.orchid.co.jp/soft/studyc.html

Windows用。

まあウェブベースで実行できるideoneとか使ったほうが楽な気はする。