0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言编译器是用来做什么的

汽车玩家 来源:电子发烧友网 2018-03-27 13:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

C语言编译器及其实例

C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。

直接插入排序(Straight Insertion Sort)的基本思想是将新记录插入到已经排好序的有序表中,初始有序表只有无序表的第一个数据,依次对无序表每个数据进行直接插入排序,从而得到了有序表,具体步骤为

若新记录小于有序表高位l.r[j],则设置哨兵

有序表后移,j+1=j

重复第2步,直至新纪录》=有序表中的j记录,则j+1就是要插入的位置

从而得到一个新的、记录数增加1的有序表。

#include 《stdio.h》

typedef float keyType;

typedef struct{

keyType score;

char name[20];

}student;

typedef struct{

int length=6;

student stu[6];

}sqList;

void SIS(sqList &L){

for(int i=2;i《L.length;i++){

if(L.stu[i].score》L.stu[i-1].score){

L.stu[0]= L.stu[i]://设置哨兵

int j;

for(j=i-1;L.stu[0].score》L.stu[j].score;j--)

L.stu[j + 1]= L.stu[j];//记录后移

L.stu[j+ 1]= L.stu[0]://找到位置,插入元素

}

}

}

int main(){

sqList L;

for(int i= 1;i《L.length;i+ +){

printf(“ 请输入第%d个学生的姓名:”,i);

gets(L.stu[i].name);

printf(“分数:”);

sCanf(“%f”,&(L.stu[j].score);

getchar();

}

SIS(L);

for(int i= 1;i《L.length;i++){

printf(“ 学生%s 分数%f 第%d 名”,L.stu[j].name,Lstce);

}

语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。

目前最流行的C语言编译器有以下几种:·GNU Compiler Collection 或称 GCC·Microsoft C 或称 MS C·Borland Turbo C 或称 Turbo C这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。

编译器及其主要工作流程

编译器,是将便于人编写,阅读,维护的高阶计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。编译器将原始程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源代码一般为高阶语言 (High-level language), 如 Pascal、C++Java 等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。

一个现代编译器的主要工作流程如下:

源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 连接器 (Linker) → 可执行程序 (executables)

将C语言源代码编译成计算机可直接运行的目标代码或机器码。说白了就是把更加贴近于人类语言的程序语言翻译成更贴近计算机的机器语言。

实现了基本高级语言所必须的语法要素,包括简单变量声明、函数的实现、整数和字符串运算、条件判断语句和循环语句及跳转语句、基本代数运算、赋值等,还支持汇编语言嵌入。本编译器是利用编译器生成器Parse Generator和VC6.0在Windows平台上实现的,并开发了一个基于Windows平台的32位编译集成开发环境CompilerMan,提供了关键字彩色提示、出错同屏提示、出错代码跳转等较为完善方便的功能。由于编译程序本身涉及到词法分析、语法分析、代码生成、错误恢复和优化等诸多模块,要在实验中做到面面俱到不太可能,所以本编译器不可避免的会存在各种问题,但作为一个具有基本功能的、可扩充的系统,完全达到巩固编译原理的理论知识,并将其运用。

编译程序,就是一种具有编撰和翻译功能的程序。人们要用计算机来解决问题,首先面临的一个问题,就是要告诉计算机解决什么问题,或者告诉计算机如何解决这个问题。这就涉及到用什么样的语言来描述的问题,人所习惯的自然语言和计算机认识的机器语言有很大的差别,用机器语言来描述人想解决的问题十分不便,因而,计算机科学家设计一些人们比较习惯的语言来描述要解决的问题,称之为高级语言。

用语言来描述的问题,统称为程序。然而,用高级语言写的程序,不能被计算机所直接认识和理解,必须经过等价的转换,变成机器能理解并执行的机器语言的程序。进行这种等价转换工作的工具,就是编译程序。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144696
  • 编译器
    +关注

    关注

    1

    文章

    1670

    浏览量

    51113
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源鸿蒙技术大会2025丨编译器与编程语言分论坛:语言驱动系统创新,编译赋能生态繁荣

    在万物智联的时代背景下,操作系统底层能力的构建离不开编程语言编译器的关键支撑。作为开源鸿蒙生态的核心技术,语言设计与编译器、虚拟机实现的进步直接关系到开发效率、运行性能与系统安全。本
    的头像 发表于 11-20 17:24 553次阅读
    开源鸿蒙技术大会2025丨<b class='flag-5'>编译器</b>与编程<b class='flag-5'>语言</b>分论坛:<b class='flag-5'>语言</b>驱动系统创新,<b class='flag-5'>编译</b>赋能生态繁荣

    什么样的代码会被编译器优化

    现在的编译器有多智能,可能你辛辛苦苦写的代码,在编译器看来就是几句废话,直接被删除掉。
    的头像 发表于 01-16 16:38 946次阅读

    EE-147:调整TigerSHARC DSP编译器C源代码

    电子发烧友网站提供《EE-147:调整TigerSHARC DSP编译器C源代码.pdf》资料免费下载
    发表于 01-15 16:11 0次下载
    EE-147:调整TigerSHARC DSP<b class='flag-5'>编译器</b>的<b class='flag-5'>C</b>源代码

    EE-88:使用21xx编译器C中初始化变量

    电子发烧友网站提供《EE-88:使用21xx编译器C中初始化变量.pdf》资料免费下载
    发表于 01-13 15:54 0次下载
    EE-88:使用21xx<b class='flag-5'>编译器</b>在<b class='flag-5'>C</b>中初始化变量

    Triton编译器与GPU编程的结合应用

    Triton编译器简介 Triton编译器是一种针对并行计算优化的编译器,它能够自动将高级语言代码转换为针对特定硬件优化的低级代码。Triton编译
    的头像 发表于 12-25 09:13 1343次阅读

    Triton编译器如何提升编程效率

    在现代软件开发中,编译器扮演着至关重要的角色。它们不仅将高级语言代码转换为机器可执行的代码,还通过各种优化技术提升程序的性能。Triton 编译器作为一种先进的编译器,通过多种方式提升
    的头像 发表于 12-25 09:12 1227次阅读

    Triton编译器在高性能计算中的应用

    先进的编译技术,为高性能计算提供了强大的支持。 Triton编译器简介 Triton编译器是一种开源的编译器框架,旨在为异构计算环境提供高效的编译
    的头像 发表于 12-25 09:11 1611次阅读

    Triton编译器的优化技巧

    在现代计算环境中,编译器的性能对于软件的运行效率至关重要。Triton 编译器作为一个先进的编译器框架,提供了一系列的优化技术,以确保生成的代码既高效又适应不同的硬件架构。 1. 指令选择
    的头像 发表于 12-25 09:09 1915次阅读

    Triton编译器的优势与劣势分析

    Triton编译器作为一种新兴的深度学习编译器,具有一系列显著的优势,同时也存在一些潜在的劣势。以下是对Triton编译器优势与劣势的分析: 优势 高效性能优化 : Triton编译器
    的头像 发表于 12-25 09:07 1901次阅读

    Triton编译器在机器学习中的应用

    1. Triton编译器概述 Triton编译器是NVIDIA Triton推理服务平台的一部分,它负责将深度学习模型转换为优化的格式,以便在NVIDIA GPU上高效运行。Triton编译器支持
    的头像 发表于 12-24 18:13 1667次阅读

    TMS320C6000优化编译器v7.4测试版用户指南

    电子发烧友网站提供《TMS320C6000优化编译器v7.4测试版用户指南.pdf》资料免费下载
    发表于 12-24 17:42 0次下载
    TMS320<b class='flag-5'>C</b>6000优化<b class='flag-5'>编译器</b>v7.4测试版用户指南

    Triton编译器支持的编程语言

    Triton编译器支持的编程语言主要包括以下几种: 一、主要编程语言 Python :Triton编译器通过Python接口提供了对Triton语言
    的头像 发表于 12-24 17:33 1498次阅读

    Triton编译器与其他编译器的比较

    的GPU编程框架,使开发者能够编写出接近手工优化的高性能GPU内核。 其他编译器 (如GCC、Clang、MSVC等): 定位:通用编译器,支持多种编程语言,广泛应用于各种软件开发场景。 目标:提供稳定、高效的
    的头像 发表于 12-24 17:25 1625次阅读

    Triton编译器功能介绍 Triton编译器使用教程

    Triton 是一个开源的编译器前端,它支持多种编程语言,包括 CC++、Fortran 和 Ada。Triton 旨在提供一个可扩展和可定制的
    的头像 发表于 12-24 17:23 2754次阅读

    HighTec C/C++编译器套件全面支持芯来RISC-V IP

    德国萨尔布吕肯,2024年12月5日——世界领先的汽车C/C++编译器解决方案提供商HighTec EDV Systeme GmbH宣布全面支持芯来科技的RISC-V IP。HighTec编译
    的头像 发表于 12-23 09:04 2028次阅读
    HighTec <b class='flag-5'>C</b>/<b class='flag-5'>C</b>++<b class='flag-5'>编译器</b>套件全面支持芯来RISC-V IP