smalltalk是什么
发布时间:2025-05-20 10:08:54 发布人:远客网络
一、smalltalk是什么
1、Smalltalk被公认为历史上第二个面向对象的程序设计语言和第一个真正的集成开发环境(IDE)。由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor, Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如Design Patterns, Extreme Programming(XP)和Refactoring等。
2、Smalltalk和许多程序设计语言不同,它不仅仅是一门语言。一种面向对象的程序设计语言:它是一种面向对象的语言,包含语言的语法和语义。一些编译器可以通过Smalltalk源程序产生可执行文件。这些编译器通常产生一种能在虚拟机上运行的二进制代码。Smalltalk语言本身非常精炼。一种程序设计环境:这里指的是一种提供许多对象的系统,而不是某种特殊的开发环境。和许多语言不同(包括C++),Smalltalk附带有一个巨大的、相当标准的类库。这些类使得开发Smalltalk程序的效率非常高。在其它语言(例如 Ada, C和 Pascal)中通常被作为语言的一部分的功能(例如条件判断,循环等),在Smalltalk由特定的类提供。一个应用开发环境(ADE):由于Smalltalk的历史原因,它具有一个非常优秀的高度集成、开放的应用开发环境。由于开发环境中的浏览器、监视器以及调试器都由同样的源程序衍生出来的,不同的版本之间也具有相当好的兼容性。此外,这些工具的源程序都可以在ADE直接存取。
3、在Smalltalk中所有的东西都是对象,或者应该被当作对象处理。例如下面的表达式: 2+ 3应当被理解为:向对象2发送消息+,参数为对象3。纯面向对象使得Smalltalk在语言结构方面有许多与其他语言不同的特点,例如在Smalltalk语言中没有条件语句,取而代之的是一些发送给对象true或者false的消息,因此它们不属于语言部分,而属于Smalltalk的类库;也没有循环重复语句(C语言中的for while),Smalltalk用向数字对象或块对象发送消息来实现重复执行。
4、最早的Smalltalk原型由Alan Kay于70年代初提出。类(来自Simula-67)、海龟绘图(来自MIT的 LOGO)以及图形界面等概念的有机组合,构成了Smalltalk的最初的蓝图。在1971年到1975年之间,Kay在Xerox PARC的小组设计并实现了第一个真正的Smalltalk语言系统。这个系统具有以下几个技术创新:语言完全基于Simula的类和消息的概念。语言没有固定的语法,语法分析由类本身完成。开发环境的革新相当迅速。虽然当时的位图显示器十分昂贵,但是Kay却说服了PARC让他使用这些位图显示器,这使得Kay和他的小组能够实现不同大小和字体的文字,使用多窗口环境,以及一些对图像处理的高端支持。 1975-76年间,Kay小组认识到应当对执行效率和规模进行优化。于是他们在许多重要方面重新设计了Smalltalk系统,在语言上:引入了继承和子类的概念。确定了语言的语法,这使得编译器能够产生高效、可执行、精炼的二进制代码。 Larry Tesler设计了浏览器,这极大地提高了Smalltalk程序员的编程效率。前述的所有Smalltalk系统都是在特殊的硬件上实现的,直到1977-78年,Bruce Horn和 Ted Kaehler把Smalltalk-76移植到由Intel 8086处理器和自定显示器所组成的硬件环境(被称为NoteTaker)上。虽然这种硬件环境只生产了10台,但是它证明了在通常的处理器上实现Smalltalk的可能性。
二、高级编程语言有哪些
1、高级编程语言有Fortran、Pascal、Cobol、C、C、Basic、Ada、Java、C#、Lisp、Haskell、ML、Scheme、Prolog、Smalltalk等。
2、编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机。
3、在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机能够进行的基本操作,这些指令一起构成了该系列计算机的指令系统。在计算机应用的初期,程序员使用机器的指令系统来编写计算机应用程序。
4、这种程序称为机器语言程序。使用机器语言编写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。缺点也很明显,如:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。
5、计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。MINIPRO编程硬件这种将高级程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
6、编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序。
三、适合初学者入门的编程语言有哪些
如果你想学习编程,虽然选择第一门编程语言与你想用它来做什么最终达到什么目的有很大的关系。但是事实上某些编程语言的确比其他语言要好学。选择一门合适的编程语言作为入门的语言对于培养自己编程的兴趣会有很大的帮助。下面是小编为大家总结出的5种最佳编程语言候选名单,排名不分先后。
当我们讨论第一门编程语言以及哪一门语言更加容易快速上手时,很容易会提到Python。它是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年,Python源代码同样遵循GPL(GNUGeneralPublicLicense)协议[1]
。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
Python不会教你非常基础的知识,但它的确可以教给你一些有用的东西,比如代码缩进、模块化,以及命名规范的重要性,可以在你学习或者使用其它编程语言时帮到你。Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
C++是C的自然演化。这两种语言大约分别起源于19世纪70年代和80年代早期。C语言是大学里面教的第一门编程语言,是一门使用非常广泛,通用的编程语言,它深远地影响了其后的几乎每一种语言。C++是另一种世界上最流行的编程语言,并且在今天仍旧广泛使用,从电脑游戏到办公软件。C++比C更难学一些,虽然许多人认为不需要再从C学起了。这是一个我们无法平息的争论。
关于C和C++的一件重要的事情是:它们都是计算机科学与编程最基础的语言。如果你学习它们,它们会使你获益,即使你之后并不去使用这两种语言。它们会使你洞察计算机科学和计算机编程的起源和基础。如果你不旨在专业的编程,这对你来仍然可以学习一下。因为学过它们的人都会说学会了C/C++后,在学习其他语言就会变得很轻松。
JavaScript通常我们会把它和Java相混淆,但是两者根本没有一点关系。它是一门脚本语言,在1995年时,由Netscape公司的BrendanEich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。它是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
它是Web的基础技术之一。但它也存在于浏览器之外。随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如Node.js的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。其语法大部分派生自C语言,如果你打算做任何形式的Web开发,学习JavaScript都是有必要的。
JavaScript比较容易学,使用浏览器即可运行,虽然它存在已经有一段时间了,但它正在迅速流行起来。学习JavaScript的成就感很高,因为你马上就可以做一些Web程序了,这是大部分人学习编程的原因。
Oracle公司的Java是互联网历史最悠久、最坚挺和最具影响力的编程语言之一。你可以在线上线下、各种平台、操作系统和设备应用的核心部分发现Java的身影。它是一门极具特色的基于类、面向对象的编程语言,被设计为能够在尽可能多的平台上移植和运行。出于这个原因,它也是世界上最流行的编程语言之一,如果你对编程感兴趣,Java非常具有学习价值。Java的短板是由于其可移植性和适用性,它变得非常难以把握,并且难以有效和高效地编程。
Java从早期语言中继承了许多语法。坚持首选Java作为第一门编程语言的学习者必须注意Java迫使你以程序员的方式思维——逻辑和分析式思考,并且真正把握计算机是如何处理信息的才行。
Ruby是一种简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,由计算机科学家松本行弘(MatsumotoYukihiro)于上个世纪90年代研发,这使得它成为广泛使用的最年轻的语言之一。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。Ruby语言通常非常直观,按照编程人认为它应该的方式运行。尽管这个语言本身是面向对象的,它也支持过程化、函数式和命令式编程,这也是造就了其非凡灵活性的因素之一。
它的设计理念就是减少编程时候的不必要的琐碎时间,令编写程序的人高兴,所以是一门非常适合初学者入门的语言。