导航:首页 > 源码编译 > 编译一段程序分级

编译一段程序分级

发布时间:2022-04-01 17:10:43

⑴ 一个编译程序有几部分构成

作为一个功能完整、且强大的编译器,一般来说包括如下几个部分:词法分析、语法分析、语义分析(因为语法上正确的,但是语义不一定正确。例如:老虎吃人、人吃老虎,语法是正确的,都是主谓宾格式,且词性相同,但是从语义分析上讲就是错误的)、中间代码生成、直到生成可执行程序。

⑵ 如何编辑一个c语言程序有关人的肥胖程度并进行简单的的分级

总要放个代码看看吧!!!编译器不同可能处理方式不同有的编译器case下面的多行语句必须要用{}括起来,否则后面的语句会忽略

⑶ 编译程序的工作过程一般可以划分为哪5个基本阶段,还自始至终伴随进行哪两项工作

1、编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。

2、编译程序的工作过程一般自始至终伴随进行信息表管理和出错处理两项工作。

主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

(3)编译一段程序分级扩展阅读:

解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。解释程序的工作过程如下:

1、由总控程序完成初始化工作。

2、依次从源程序中取出一条语句进行语法检查,如有错,输出错误信息;如果通过了语法检查,则根据语句翻泽成相应的指令并执行它。

3、检查源程序是否已经全部解释执行完毕,如果未完成则继续解释并执行下一条语句,直到全部语句都处理完毕。

⑷ 描述一般的编译程序可分为哪些阶段,每个阶段的目的是什么

其目的是保证标识符和常数的正确使用,把必要的信息...综合部分 综合阶段必须根据符号表和中间语言程序产生...目标程序质量,也可以把一个逻辑步骤的工作分为几遍.

java:编译一段程序,根据考试成绩给多个同学划分等级。

import java.nio.Buffer;
import java.security.KeyStore.Builder;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
//自己为你做的 主要是要同时打印出,必须先把他们都合成在一起,再一次打印,方法很多
public class levelForExam {
public static void main(String[] args) {
Map<String, Exam> map = new HashMap<String, Exam>();
System.out.println("请输入共有几名同学,(必须输入整数)");// 确定循环次数
int n = new Scanner(System.in).nextInt();
for (int i = 0; i < n; i++) {
System.out.println("请输入姓名");
String name = new Scanner(System.in).nextLine();
System.out.println("请输入分数(必须输入整数)");
int score = new Scanner(System.in).nextInt();
Exam exam = new Exam(name, score, levelSplit(score));
map.put(name, exam);
}
StringBuffer sb = new StringBuffer();
for (Object e : map.keySet()) {
String string = String.valueOf(map.get(e.toString()).toString());
sb.append(string);
}
System.out.println(sb);
// 只用一个语句打印出了所有信息,
// 你说是不是同时输出多个人的等级???
}

public static String levelSplit(int score) {
String string = null;
if (score >= 90)
string = "A";
if (score >= 80 & score < 90)
string = "B";
if (score >= 70 & score < 80)
string = "C";
if (score >= 60 & score < 70)
string = "D";
if (score <= 59)
string = "E";
return string;

}
}

class Exam {
String name;
int score;
String level;

public Exam() {

}

public Exam(String name, int score, String level) {
this.name = name;
this.score = score;
this.level = level;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getScore() {
return score;
}

public void setScore(int score) {
this.score = score;
}

public String getLevel() {
return level;
}

public void setLevel(String level) {
this.level = level;
}

public String toString() {
return " 姓名:" + name + ", 分数:" + score + " 等级:" + level + "\n";
}
}

⑹ 编译器是怎么把程序分成代码段数据段等的。。代码段没有数据要怎么搞

根据你代码的全局变量定义 或者静态变量定义,在编译的时候,为可执行程序分配一段空间用于存放这些变量。未初始化的全局变量存放在BSS段中,代码段要是没有上述变量,那数据段也就是空的。

⑺ 编译程序分为哪几个主要部分

1、词法分析

词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。

2、语法分析

编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。

3、中间代码生成

中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。

4、代码优化

代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。

5、目标代码生成

目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。



(7)编译一段程序分级扩展阅读:

特点

数据结构分析和综合时所用的主要数据结构,包括符号表、常数表和中间语言程序。符号表由源程序中所用的标识符连同它们的属性组成。

其中属性包括种类(如变量、数组、结构、函数、过程等)、类型(如整型、实型、字符串、复型、标号等),以及目标程序所需的其他信息。常数表由源程序中用的常数组成,其中包括常数的机内表示,以及分配给它们的目标程序地址。

分析部分源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的。词法分析由词法分析程序(又称为扫描程序)完成。

其任务是识别单词(即标识符、常数、保留字,以及各种运算符、标点符号等)、造符号表和常数表,以及将源程序换码为编译程序易于分析和加工的内部形式。


⑻ 编写一个程序 任意输入一个成绩等级字母A B C D 输出每个字母对应的分数段 直到输入字母Q

#include<stdio.h>
void main()
{
char i;
while(1)
{
printf("输入字母(大写)\n");
scanf("%c",&i);
if(i=='\n')
continue;
switch(i)
{
case 'A':printf("90-100\n");
break;
case 'B':printf("80-89\n");
break;
case 'C':printf("61-79 \n");
break;
case 'D':printf("0-60 \n");
break;
case 'Q':printf("0-60 \n");
return;
break;
default:
printf("error\n");
}
}
}

⑼ C语言源程序的编译过程包括哪三个阶段

编译:将源程序转换为扩展名为.obj的二进制代码
连接:将obj文件进行连接,加入库函数等生成可执行文件
运行:执行可执行文件,有错返回修改,无错结束

阅读全文

与编译一段程序分级相关的资料

热点内容
陕西不听命令 浏览:368
怎么把皮皮虾app表情弄到微信 浏览:288
安卓编译springboot 浏览:393
手机壁纸文件夹背景 浏览:792
target目录禁止编译 浏览:804
php打开html页面 浏览:614
python加密mp4 浏览:898
吃鸡如何把安卓平板亮度变亮 浏览:5
python中concatenate 浏览:37
程序员银行用的技术老旧 浏览:848
航天器控制算法软件 浏览:520
游戏不同的服务器有什么区别 浏览:73
jar线上编译 浏览:117
程序员论坛代码被怼 浏览:998
win7文件夹选项注册表 浏览:787
中央编译局常艳博士照片 浏览:307
濡沫江湖安卓怎么下载 浏览:955
陕西省电信dns服务器云服务器 浏览:828
美辑编译多长时间润色好 浏览:468
服务器心跳地址是什么 浏览:983