C、C++与Java的产生背景

简介:        最近,我在看林信良的《Java学习笔记》。本书是作者多年来学习和教学工作的心得和总结,文章内容通俗易懂,让我对Java的基础知识有了一定的了解。

       最近,我在看林信良的《Java学习笔记》。本书是作者多年来学习和教学工作的心得和总结,文章内容通俗易懂,让我对Java的基础知识有了一定的了解。


       学习任何一门语言,了解它的产生背景是很有必要的。由于Java与C++都是面向对象的,而C++又是在C的基础之上发展起来的,因此本文同时介绍C、C++与Java这三种语言的产生背景及相关情况。


1. C语言出现的历史背景


       1960年,ALGOL 60作为一种面向问题的高级语言而出现。1963年,英国剑桥大学推出了CPL(Combined ProgrammingLanguage)语言。1967年,同样是英国剑桥大学的Martin Richards在对CPL语言作简化的基础之上,推出了BCPL(Basic CombinedProgramming Language)语言。1970年,美国贝尔实验室的Ken Thompson以BCPL语言为基础,设计了B语言(取BCPL的第一个字母),并用B语言编写了第一个UNIX操作系统。1972年至1973年之间,贝尔实验室的D. M. Ritchie在B语言的基础之上设计出了C语言(取BCPL的第二个字母)。1973年,Ken Thompson和D. M. Ritchie合作,把UNIX的90%以上用C语言改写。


       1983年,美国国家标准化协会(ANSI)为C语言制定了新的标准,称为ANSI C。1987年,ANSI又公布了新标准—87 ANSI C。1990年,国际标准化组织(ISO)接受87 ANSI C为ISO C的标准(ISO 9899-1990)。1994年,ISO修订了C语言标准。


       C语言具有较强的生命力,其主要特点有:1)语言简洁、紧凑,使用方便、灵活;2)运算符丰富;3)数据类型丰富,具有现代语言的各种数据结构;4)具有结构化的控制语言(如if…else语句等);5)语法限制不太严格,程序设计自由度大;6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作;7)生成目标代码质量高,程序执行效率高;8)与汇编语言相比,用C语言编写的程序的可移植性好。


2. C++语言出现的历史背景


       C语言是一种面向过程的编程语言,已经不能满足运用面向对象方法开发软件的需要。C++便是在C语言的基础之上为支持面向对象的程序设计而研制的一种通用的程序设计语言。C++是在1980年由AT&T贝尔实验室的Bjarne Stroustrup创建的。


       最初,C++被称为“带类的C”,1983年正式取名为C++,其标准化工作从1989年开始。1994年,制定了ANSI C++标准草案。1998年11月,ISO正式批准了C++的国际标准。


       C++语言的主要特点表现在两个方面:一是全面兼容C,二是支持面向对象的方法。C++既支持面向过程的程序设计,又支持面向对象的程序设计。


3. Java语言出现的历史背景


       Java最早是Sun公司“绿色项目”中编写Star7应用程序的一个程序语言,该项目开始于1990年12月。在1992年的9月3日,“绿色项目”小组展示了Star7手持设备,使用的编程语言取名为Oak。但后来发现Oak名称已经被注册了,便更名为Java。


        万维网的兴起,使Java Applet成为网页互动技术的代表。1993年,第一个万维网浏览器Mosaic诞生。“绿色项目”小组仿照了Mosaic开发出一个以Java技术为基础的浏览器WebRunner,后来改名为HotJava。


        1995年5月23日,Java DevelopmentKits(JDK)1.0a2版本正式对外发布。JDK除了提供编写Java程序时所必要的编译、运行、调试等工具之外,更搭配有越来越丰富的API。随着应用范围越来越广,Java演化出了3个不同领域的应用平台:Java SE、Java EE和Java ME。


        Java是一个更简单的面向对象的程序语言,在使用上比C++更为简单。随着时间的推移,Java不再只是表示一种程序语言,而是一种开发软件的平台,更进一步地也是一种开发软件时的标准与架构的统称。


        作为一种程序语言,Java拥有许多重要的特性:简单的、面向对象的、网络的、解释的、健壮的、安全的、可移植的、高性能的。

 

 

 

参考资料

[1]    谭浩强,C程序设计(第三版),清华大学出版社,2005年。

[2]    郑莉等,C++语言程序设计(第3版),清华大学出版社,2003年。

[3]    林信良,Java学习笔记,清华大学出版社,2007年。
目录
相关文章
|
4月前
|
Java C++
部落(pta)(并查集) Java以及C++
部落(pta)(并查集) Java以及C++
38 2
|
3月前
|
Java API C++
Java JNI开发时常用数据类型与C++中数据类型转换
Java JNI开发时常用数据类型与C++中数据类型转换
136 0
|
17天前
|
Rust 安全 Java
Java代码规范--排版,命名.:Rust能否撼动C++的王座?
系统编程是计算机科学的核心,C++长期占据主导地位,但其内存安全问题备受诟病。Rust以安全性为核心,通过所有权和生命周期概念避免了野指针和内存泄漏。此外,Rust的并发模型和日益丰富的生态系统使其成为现代系统编程的新选择,尤其在安全性和并发性方面表现出色。尽管C++依然强大,但Rust为开发者提供了更安全、易管理的选项,未来有望推动更多系统级应用的发展。
15 0
|
2月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
【7月更文挑战第28天】在 Android 开发中, NDK 让 Java 与 C++ 混合编程成为可能, 从而提升应用性能。**为何选 NDK?** C++ 在执行效率与内存管理上优于 Java, 特别适合高性能需求场景。**环境搭建** 需 Android Studio 和 NDK, 工具如 CMake。**JNI** 构建 Java-C++ 交互, 通过声明 `native` 方法并在 C++ 中实现。**实战** 示例: 使用 C++ 计算斐波那契数列以提高效率。**总结** 混合编程增强性能, 但增加复杂性, 使用前需谨慎评估。
90 4
|
1月前
|
算法 Java Linux
Intellij Java JNI 调用 C++
Intellij Java JNI 调用 C++
24 0
|
2月前
|
人工智能 分布式计算 Java
【C++入门 一 】学习C++背景、开启C++奇妙之旅
【C++入门 一 】学习C++背景、开启C++奇妙之旅
|
3月前
|
Java Go C#
编程语言C#、C++、Java、Python、go 选择哪个好?
我想说的是,不论选择哪种编程语言,决定选择的都是你最终的目的,做选择之前,先充分调研每一个选择项,再做选择思路就会非常清晰了。
81 3
|
3月前
|
Java C++
java和C++的标志符可以是中文(虽然不提倡)
java和C++的标志符可以是中文(虽然不提倡)
|
3月前
|
Java C++
Java和C++的一些区别
Java和C++的一些区别
|
4月前
|
Java C++
愤怒的牛(java c++)(二分典型例子)
愤怒的牛(java c++)(二分典型例子)
51 1

热门文章

最新文章