b语言编译
❶ c语言为什么叫做C语言而不叫A,B,D..Z等语言
C语言的祖先是BCPL语言。 1967年,剑桥大学的 Martin Richards 对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。 1970年,美国贝尔实验室的 Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。 在1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。 1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合着了着名的《The C Programming Language》一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准化协会(American National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSI C。 K&R第一版在很多语言细节上也不够精确,对于pcc这个“参照编译器”来说,它日益显得不切实际;K&R甚至没有很好表达它所要描述的语言,把后续扩展扔到了一边。最后,C在早期项目中的使用受商业和政府合同支配,这意味着一个认可的正式标准是必需的。因此(在M. D. McIlroy的催促下),ANSI于1983年夏天,在CBEMA的领导下建立了X3J11委员会,目的是产生一个C标准。X3J11在1989年末提出了一个他们的报告[ANSI 89],后来这个标准被ISO接受为ISO/IEC 9899-1990。 1990年,国际标准化组织ISO(International Organization for Standards)接受了89 ANSI C 为I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。 1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,尤其是对C++中的一些功能,命名为ISO/IEC9899:1999。 2001年和2004年先后进行了两次技术修正。 目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则又略有差别。 2011年12月,ISO正式公布C语言新的国际标准草案:ISO/IEC 9899:2011。 新的标准修提高了对C++的兼容性,并将新的特性增加到C语言中。新功能包括支持多线程, 基于ISO/IEC TR 19769:2004规范下支持Unicode,提供更多用于查询浮点数类型特性的宏定义和静态声明功能。
❷ 为什么叫做c语言! 有A.B语言吗! 学习C语言具体有什么用途
c语言是最基础的编程语言,操作系统就是用c编的
C语言与其他计算机语言一样是一种人与电脑交流的规则的集合。有“词汇”丰富,表达能力强的特点,有类似“普通话”的地位(尽管此类比不准确)。
电脑启动后所做的除了处理数据还是处理数据,数学是处理数据的唯一手段。数学是电脑语言的单位——语句、变量等组织在一起完成人给定任务的基础,没有数学就没有编程。而教材中的例子在初学者看来仅仅是一道道普普通通的数学题,事实上是完成复杂任务的基础。在完成教材练习中,让学习者体会语句的用法,锻炼语句的调度能力,之后才可能接触你认为比较感性的任务(如发送电子邮件等)。
❸ 计算机C语言的前身B语言是哪种语言
B语言是C语言的前身,C语言是以B语言为基本开发的, C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。
B语言是贝尔实验室开发的一种通用的程序设计语言,它是于1969年前后由美国贝尔实验室的电脑科学家肯·汤普森(Ken Thompson)在丹尼斯·利奇(Dennis Ritchie)的支持下设计出来。
C语言是一门通用计算机编程语言,应用广泛。1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
❹ 编译器一般由哪种语言开发
其实我在想为什么汇编语言生成一个简单的编译器后,可以用新生成的编译器再次生成编译器,例如,C语言开发C的编译器呢?
这是一个递归的思想,举个例子一看就明白了
用一个大的模具可以生成一个A模具,A模具可以做出来B模具,依次往下推,最终这个小模具可以做出来小盒子用来装东西。
第一个大模具肯定是手工做出来的第一个模具,但是有了这个大模具后,后面就可以用他自动的生成更多的模具,后面的各种模具加起来又可以造出来更精致的模具,
所以,自动第一个大模具造出来模具的时候,大模具就可以被抛弃了。
我们都知道编译程序通常分为下面五个阶段:
1)词法分析
2)语法分析
3)语义分析与中间代码产生
4)优化
5)目标代码生成
当然最难的一点就是目标代码的生成,这一阶段实现了最终的翻译,就是真正把原码翻译成可以被CPU直接计算的机器码(NativeCode)。
❺ B语言与C语言的关系
http://1992xujinting.blog.163.com/blog/static/625907112008102275957346/
Algol 60是在引入FORRAN几年后就出现的一种语言。这种基于欧洲语系的语言更加复杂,它对后来的程序设计语言有很大的影响。其作者非常注重语法规则、模块结构和其他通常与高级结构语言相关的功能。遗憾的是,Algol 60从没有在美国真正流行起来,很多人认为这是因为该语言的抽象性和普遍性。
CPL(Cinbined prigramming Language)的发明者想把Algol 60崇高的目标带入实际计算实现。然而,就像Algol 60难以学习和实现一样,CPL也是这样。这导致最终失败,BCPL(Basic Combined Programming Language)的创建者仍然执着于CPL所提供的优点,他们想浓缩CPL的基本功能。
当Ken Thompson为UNIX的早期实现设计B语言时,他曾经图进一步简化CPL。他成功创建了一种非常稀有的语言,这种语言非常适合在他所使用的硬件上使用(也就是DECPOP-7,具有8位寄存器长度)。然而,BCPL和B是有局限性的语言,只是用于处理某些种类的问题。
例如,Ken Thompson在DEC PDP-7上现实B语言时就出现了一新机器PDP-11(16位字长)。虽然PDP-11是一种比其前辈PDP-7更大的机器,但是,按照今天的标准他仍然是相当小。它只有24KB内存(其中系统使用16KB)和一个512KB的硬盘。一些人想用B重写UNIX,但是因为B语言的解释设计,其运行速度慢。还有另外一个问题:B是面向字节的,而PDP-11是面向字的。由于这些原因,关于B后继语言方面的工作从你1979年开始,这被命名为C(组合(Combine)其前辈的优点)。
这里我们需要讨论UNIX操作系统,因为该系统和在其上运行的多运行的多数程序都用C编写。CNIX OS原来有位于新泽西州 Murray Hill的Bell实验室开发。按照设计该操作系统是对“程序员友好的”(Programmer friendly),他提供有用的开发工具、较少的命令和一个相当开放的环境。然而,这并不意味着C依赖于UNIX或其他任何操作系统或机器。UNIX/C协同开发环境为C争得一个荣誉:它是系统程序设计语言,因为它适合于编写编译器和操作
系统。C还非常适合于编写很多不同领域中的多数程序。
Dennis Ritchie被认为是C的创建者,该语言恢复了在BCPL和B中丧失的通用性。他通过精确使用数据类型来实现这一点,并保持了简单和对硬件的直接访问,这是CPL的最初设计目标。
----
另外还可以参考这里:http://zx.china-b.com/jqdx/zixun_101199.html
❻ 突然想知道,为什么有的语言需要编译之后运行,而有的语言则不需要呢 C, ruby 请分析谢谢!
我们用的大部分程序设计语言都是高级语言,高级语言要执行,必须要先变成计算机能识别的汇编语言.将高级语言变成汇编语言的过程叫做翻译,目前有两种形式的翻译方法,一种是编译,一种是解释.C就属于编译方式,执行前一定先编译一次.而B语言就是解释方式,解释一条执行一条,所以执行先不需要编译一下.
❼ basic与B语言是一样的吗
是的。
不过现在基本上换VB了,visual basic
❽ 为什么C语言要叫C语言,不叫A语言或者B语言
因为已经有A和B
语言了
C语言是目前世界上流行、使用最广泛的高级程序设计语言。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。
常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等......
C语言的发展历史
C语言的发展颇为有趣。它的原型ALGOL 60语言。(也成为A语言)
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。
而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。
为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名着《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多着名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。
C语言的特点
1. 简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2. 运算符丰富
C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3. 数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
4. C是结构式语言
结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格、程序设计自由度大
一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7. C语言程序生成代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8. C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。
当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
总之,C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。
❾ 将v b语言的程序变成计算机可执行的二进制代码这工作通常是由什么执行
编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序。
然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。
利用编译程序从源语言编写的源程序产生目标程序的过程。 用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。