我已经理解Python是一种解释型语言......然而,当我查看我的Python源代码时,我看到了.pycWindows,它们识别为"编译的Python文件".这些来自哪里?
在阅读了关于这个主题的一些材料之后,我仍然不确定编译语言和解释语言之间的区别是什么.我被告知这是Java和JavaScript之间的差异之一.请有人帮我理解吗?
我很好奇是否有人使用过UnderC,Cint,Cling,Ch或任何其他C++解释器并且可以分享他们的经验.
我在osx上.我发现了这个 http://neugierig.org/software/c-repl/, 但该页面上的代码链接似乎已被破坏.
有没有用javascript或java编写的C语言解释器?
我不需要一个完整的解释器,但我需要能够一步一步地执行程序,并能够看到变量的值,堆栈......所有这些都在Web界面中.
这个想法是通过向他们展示程序的逐步执行来帮助C初学者.我们正在使用GWT来构建接口,因此如果Java中存在某些内容,我们应该能够使用它.
我可以修改它以满足我的需要,但如果我可以避免编写解析器/抽象语法树walker/stack操作...这将是伟大的.
要清楚,我不想模拟完整的C,因为有些程序可能非常棘手.
我指的是一个基本的操作,例如:表达式评估,矫揉造作,函数调用.
CI想要模拟将包含:变量,for,while,函数,数组,指针,数学函数.没有goto,字符串函数,ctypes.h,setjmp.h ...(至少目前为止).
这是一个原型:http://www.di.ens.fr/~fevrier/war/simu.html
在这个例子中,我们已经手动将C代码转换为javascript表示,但它是有限的(诸如a == 2 || a = 1未处理的表达式)并且仅限于手动转换的程序.
我们在远程服务器上处理了一个C编译器,因此我们可以检查代码是否正确(并且没有任何未定义的行为).解析/ AST构造也可以远程完成(所以任何语言),但AST步行需要在javascript中才能在客户端运行.
所以这可能是一个很长的镜头,但有没有办法将C或C++文件作为脚本运行?我试过了:
#!/usr/bin/gcc main.c -o main; ./main
int main(){ return 0; }
Run Code Online (Sandbox Code Playgroud)
但它说:
./main.c:1:2: error: invalid preprocessing directive #!
Run Code Online (Sandbox Code Playgroud) 我只是想知道这是否可能使用(Python,Java或C)?我正在寻找类似IPython for Python的东西.
如何在C中动态创建函数?
我尝试总结我的C问题如下:
我有一个矩阵,我希望能够使用一些函数来生成它的元素.
函数没有参数
因此我定义了以下内容:
typedef double(function)(unsigned int,unsigned int);
/* writes f(x,y) to each element x,y of the matrix*/
void apply(double ** matrix, function * f);
Run Code Online (Sandbox Code Playgroud)
现在我需要在代码中生成常量函数.我想过创建一个嵌套函数并返回它的指针,但是GCC手册(允许嵌套函数)说:
"如果你试图在包含函数退出后通过其地址调用嵌套函数,那么一切都会崩溃."
我希望从这段代码中得到...
function * createConstantFunction(const double value){
double function(unsigned int,unsigned int){
return value;
}
return &function;
}
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能让它发挥作用?
谢谢!
大约13年前,我需要一种方法来编写我在Borland C++中编写的应用程序.我在我的应用程序中找到了一个C解释器并嵌入了它.这一直很好,我有很多脚本.
我现在需要重做应用程序并将在C#中执行此操作.有谁知道C#的C解释器?我有原始翻译的来源,但我只需要节省一些时间.
编辑 这是脚本的摘录:
main()
{
LwSet( "STUFE", "00.00" );
LwSet( "STATUS", "Warten", "AUS" );
do
{
LwSet( "DEBUG", "OFF" );
LwSet( "FUNKTION", "Warten auf Start" );
do
{
rc = LwGet( "Event" );
if( rc == "QUIT" ) {
...
Run Code Online (Sandbox Code Playgroud)
LwSet/LwGet调用我在解释器中注册的函数,这些函数是我的应用程序的特性.
EDIT2
在有人觉得有必要告诉我我应该使用的其他语言之前,以下是我的评论:
当时,考虑到可用的技能,这不是一个烦人的选择.现在,13年后,很多事情看起来有很多不同!我只是坚持使用一堆准C脚本,我想使用它而不必以某种方式转换它们.
c ×6
interpreter ×3
c++ ×2
java ×2
javascript ×2
shell ×2
c# ×1
compiled ×1
dynamic ×1
gwt ×1
interactive ×1
pyc ×1
python ×1