當前位置:首頁 » 編程語言 » c語言在線解釋器
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言在線解釋器

發布時間: 2022-07-22 09:46:58

『壹』 c語言腳本解釋器

記錄大括弧!!!
遇到if則判斷語句,接下來,然後假設判斷式成立,執行if緊跟著的語句,把大括弧括起來的當成一個語句,執行下去,如果沒有else的話就繼續,有else的話跳過else所包含的范圍.

『貳』 c語言在線翻譯器

這個是大數加法的程序了,
1 先進行分割,
2 然後將對應的字元數字保存為數字逆序放到數組里,
3 在做加法,進位的時候後面以為加,低位和減去10為低位,
4 逆序輸出結果

『叄』 c語言腳本解釋器

a=1;
b=2;
a=b++;
if(a==b)
{
a++;
printf(a);
}
這樣就可以了。

『肆』 Java怎麼轉換c語言

Java直接轉C的沒有。

Java轉C#和C++的倒是有軟體。(具體用法還要你自己研究)

比如:

1、Java語言轉換器助手銜接,這個可以轉C#。

2、Octopus的.NET轉換器銜接,這個可以轉C++或C#。

3、Tangible的Java轉C#轉換器銜接,有注釋,方便學習,需要購買商業版才行。

4、XES的Java轉C#轉換器銜接,界面簡單,容易上手。

5、Varycode工具銜接,在線工具,支持多語言轉換(包括VB、Ruby、Python等)。

『伍』 求解釋代碼,有關用c語言寫一個簡單的shell解釋器的

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/wait.h>
#define CMD_LINE 1024
#define PIPE_MAX 16
#define ARG_MAX 10
typedef struct {
char *arg[ARG_MAX];
char *in;
char *out;
} cmd_t;
extern int parse_token(char *buf, cmd_t cmd[]);
extern int parse(char *buf, cmd_t * cmd);
extern int test_parse(cmd_t cmd[], int len);
int main(int argc, char *argv[])
{
char buf[CMD_LINE];
cmd_t cmd[PIPE_MAX + 1];
int fd[PIPE_MAX][2];
int j, i;
int cmd_len, pipe_len;
pid_t pid;
while (1) {
printf("my_shell#"); //列印提示符

fgets(buf, CMD_LINE, stdin); //獲得輸入
buf[strlen(buf) - 1] = '' //去掉結尾的換行符?
cmd_len = parse_token(buf, cmd);//解析命令
pipe_len = cmd_len - 1; //
if (pipe_len > PIPE_MAX)
continue;
for (i = 0; i < pipe_len; ++i)
pipe(fd[i]); //創建pipe_len個管道
for (i = 0; i < cmd_len; ++i) //創建cmd_len個進程
if ((pid = fork()) == 0) //判斷是否為子進程
break; //如果是子進程,跳出for循環
if (pid == 0) { //循環中是子進程代碼
if (pipe_len) {
if (i == 0) { //第一個子進程
close(fd[i][0]); //關閉管道的讀取端
p2(fd[i][1], 1); //復制管理的寫入端為標准輸出(標准輸出會寫入管道)
close(fd[i][1]); //關閉管道的寫入端
for (j = 1; j < pipe_len; ++j)
close(fd[j][0]), //關閉無關進程的管道
close(fd[j][1]);
} else if (i == pipe_len) { //第pipe_len個子進程
close(fd[i - 1][1]); //關閉管道的寫入端
p2(fd[i - 1][0], 0); //復制管理的讀取端為標准輸出(標准輸入會讀取管道)
close(fd[i - 1][0]); //關閉管道的讀取端
for (j = 0; j < pipe_len - 1; ++j)
close(fd[j][0]), //關閉無關進程的管道
close(fd[j][1]);
} else { //其他子進程
p2(fd[i - 1][0], 0); //復制管理的讀取端為標准輸出(標准輸入會讀取管道)
close(fd[i][0]); //關閉管道的讀取端
p2(fd[i][1], 1); //復制管理的寫入端為標准輸出(標准輸出會寫入管道)
close(fd[i][1]); //關閉管道的寫入端
for (j = 0; j < pipe_len; ++j) {
if ((j != i - 1) //關閉無關進程的管道
|| (j != i))
close(fd[j][0]),
close(fd[j]
[1]);
}
}
}
if (cmd[i].in) { //如果需要,打開輸入文件並重定向
int fd = open(cmd[i].in, O_RDONLY);
p2(fd, STDIN_FILENO);
close(fd);
}
if (cmd[i].out) { //如果需要,打開輸出文件並重定向
int fd =
open(cmd[i].out,
O_RDWR | O_CREAT | O_TRUNC, 0644);
p2(fd, STDOUT_FILENO);
close(fd);
}
execvp(cmd[i].arg[0], cmd[i].arg); //執行當前命令
fprintf(stderr, "Failed exec "); //執行命令失敗後才會執行之後的代碼
exit(127);
} //子進程代碼結束
/* parent */
for (i = 0; i < pipe_len; ++i)
close(fd[i][0]), close(fd[i][1]);
for (i = 0; i < cmd_len; ++i)
wait(NULL); //等待子進程結束
}
return 0;
}
int parse_token(char *buf, cmd_t cmd[])
{
int n = 0;
#if 1
char *save_p;
char *p = strtok_r(buf, "|", &save_p);//以'|'分割命令將分割後的第一部分給p
while (p != NULL) {
parse(p, &cmd[n++]);
p = strtok_r(NULL, "|", &save_p);//將之後的部分給p,每次給一部分,每調用一次給下一部分
}
#else //下一塊語句不被執行
cmd[n].arg[0] = "ls";
cmd[n].arg[1] = "-l";
cmd[n].arg[2] = NULL;
#endif
return n;
}
int test_parse(cmd_t cmd[], int len) //此函數未被調用
{
int i;
for (i = 0; i < len; ++i) {
printf("cmd[%d]:", i);
int j = 0;
while (cmd[i].arg[j])
printf(" %s", cmd[i].arg[j++]);
if (cmd[i].in)
printf(" in:%s", cmd[i].in);
if (cmd[i].out)
printf(" out:%s", cmd[i].out);
printf(" ");
}
return 0;
}
int parse(char *buf, cmd_t * cmd)
{
int i = 0;
cmd->in = NULL;
cmd->out = NULL;
char *p = strtok(buf, " ");//以空格分割命令(此時命令已被|分割過了)
while (p) {
if (*p == '<') { //如果命令以<開頭,即需要做輸入重定向
if (*(p + 1)) //這種情況是<後無空格直接跟文件名
cmd->in = p + 1;
else //這種情況是<後有空格
cmd->in = strtok(NULL, " ");
} else if (*p == '>') { //如果命令以>開頭,即需要做輸出重定向
if (*(p + 1)) //這種情況是>後無空格直接跟文件名
cmd->out = p + 1;
else //這種情況是>後有空格
cmd->out = strtok(NULL, " ");
} else
cmd->arg[i++] = p; //這種情況是正常命令或參數
p = strtok(NULL, " ");
}
cmd->arg[i] = NULL;
return 0;
}

『陸』 如何用C語言寫一個shell命令解釋器

支持的基本命令需求什麼?你要做個cmd這樣的來給你個1年估計都不夠~

『柒』 用c語言寫一個算術表達式的解釋器,但這解釋器裡面要用到詞法分析器的結果怎麼套進去是兩個不同的程序呀

用c語言寫一個算術表達式的解釋器,但這解釋器裡面要用到詞法分析器的結果怎麼套進去是兩個不同的程

『捌』 能在網上在線編譯C語言,並編譯呈現出來的網站是什麼

Ideone
Ideone(http://ideone.com/)是一個在線多語言編程執行器工具,可以在線直接做編譯和執行動作,支持包括C++,Java,JavaScript,Perl,PHP,Python和Ruby在內的40多種編程語言.Ideone是一個簡易的編程測試工具,雖然不能替代專業版的工具,但是其功能非常全面.,該頁面上有不少廣告,看的有點不爽.
望採納~
有問題歡迎繼續追問

『玖』 誰幫我使用C語言編寫一個JavaScript腳本解釋器急求

這個比價麻煩1)
JS 語法,至少表達式,變數要有。
2)HTML

document.write
需要寫在HTML對應的位置。

『拾』 當我是 白痴 好了,什麼是C語言的解釋器

解釋器(英語:Interpreter),又譯為直譯器,是一種電腦程序,能夠把高級編程語言一行一行直接轉譯運行
預編譯器的不同在於它逐行解釋運行,與解釋執行語言如python相似