11

Bret Victor の「ライブ」 JS IDEや、それに触発されて他の言語に拡張され、VM ベースの言語にとどまっているいくつかの代替実装を見たことがあるかもしれません。

しかし昨日、LLVM のおかげで古き良き C++ に適用された同じ概念に出くわしました。まだ非常に初期の未熟な実装ですが、多くの可能性があります。

私は実装に本当に興味がありましたが、作者はそれを公開していて、公開していないかもしれません.

したがって、私の質問は、同様の機能を実装する方法に関するリソースを誰かが知っているかどうかです。つまり、ほぼ瞬時のコンパイルと 2 つの接続を意味し、コードのリアルタイムのフィードバックを提供し、視覚的な部分を変更したり、追加のコードを生成してプレビューしたりできるようにしますか?

4

2 に答える 2

2

「Cling」と呼ばれるclangベースのC/C ++インタープリターは、関連するコードである可能性があります。リアルタイムでGUIを構築するためにどのように使用できるかをご覧ください:http ://www.youtube.com/watch?v = BrjV1ZgYbbA

于 2012-09-16T16:32:04.940 に答える
0

Linux: 簡単な C/C++ コードをほぼリアルタイムでテストする単純な方法が必要な場合は、私が組み立てた次のコードを使用できます。

#!/bin/bash
#Requires: inotify-tools
################################
# Adjust values:
terminal="xterm"
editor="vim"
compiler="clang++"
################################
if [[ $1 == "" ]]; then
    echo "Usage: $0 example.cpp";
    exit
fi
file_to_edit=$1
file_output=${file_to_edit%%.*}
(while(true); do 
    change=$(inotifywait -q -e close_write,moved_to,create .);
    change=${change#./ * }
    if [ "$change" = "$file_to_edit" ]; then
        ($compiler $file_to_edit -o $file_output);
    fi
done) & > /dev/null
$terminal -e "watch -n 1 ./$file_output" &
$editor $file_to_edit;
pkill -P $$

注: 「inotify-tools」パッケージが必要です。

それはどのように機能しますか?

1) ターミナル (デフォルト: xterm) を開き、「watch」コマンドを使用して毎秒バイナリ ファイルを実行します (ファイルが存在しない場合は、「not found エラー」が表示されます)。

2) C/C++ コードが変更された場合は、それがコンパイルされます (デフォルトのコンパイラ: clang++ ですが、gcc などを使用できます)。必要に応じて、コンパイル コマンドを次の場所で変更できます。$compiler $file_to_edit -o $file_output

3) 選択したエディター (デフォルトでは vim) でファイルが開きます。

4) 終了時に、ターミナルと監視プロセスを閉じます。

于 2015-10-08T07:03:39.007 に答える