计算机基础-笔记5

计算机语言

  • 汇编语言:相对于计算机语言更加容易理解,但是相较于高级语言来说,比较难懂和低级。就是将机器指令进行一层抽象打包,开发的效率更高,因此比较接近机器语言。而高级语言就是在汇编语言的基础上再进行了一系列的抽象打包,更加易懂。
  • 嵌入式系统:就是将软件和硬件迁入到一个机器中,使这个机器具有专有性,工作效率高。像冰箱、空调、洗衣机等专门干某项工作的机器就是嵌入式设备,而像智能手机和电脑,虽说其设备也是由许多软硬件组成的,但是其应用广泛,所以不属于嵌入式设备。
  • 编译型语言是一次编译,处处运行,效率比较高,但是由于不同操作系统对于编程的规则和指令存在差异,所以由编译型语言写出的程序不可能在所有操作系统上都顺利运行,兼容性和跨平台性较差。解释型语言是省略了编译的步骤,在运行时需要对程序逐条翻译,一边翻译,一边运行,所以效率不高,由于其对操作系统的依赖性不强,可以通过不同的解释器在不同的平台上运行,所以其跨平台性比较好。混合型语言则是结合了这两者的特点,先将程序编译为中间程序,再通过不同的解释器(虚拟机)翻译执行。
  • 面向对象编程:编程的基础及主体是对象,通过定义对象,在对象之下完成指令动作。面向过程编程:其将一个完整的事件按事情发展顺序进行拆分,以过程为主体,各个过程都相互独立。面向过程编程比较容易理解和编写,将事件拆分罗列就可以了,不用定义许多对象,但是对于一些较为复杂的程序,难以维护和修改,比如改一个变量就需要修改与之相关的许多过程,这方面就不如面向对象编程了。
  • 动态类型语言不需要标注数据类型,编译器在编译时可以依据条件猜测这个变量是属于哪个数据类型,对于程序员比较友好。静态语言类型必须明确标注数据类型,否则程序无法继续编译。
  • 强类型语言在编译程序时如果发现某个值的类型不符合运算规则,就会报错,不予执行。而弱类型语言会对值的类型进行猜测,不会报错。显然,强类型语言不容易出错。
  • C语言:

C语言的缺点之一——溢出:以int型为例,它表示的字节长度是有限度的,4个字节,那么与之相对应的整形数字也有个上限值,姑且称之为M,如果取个大于M的数字,其运算结果就会出现错误。就相当于一个名叫int的茶杯里只能装500ml的水,一旦超过这个值,就要溢出了。C语言编译时如果发生以上情况,编译器不会报错,只能程序员自己拿着一个极不合理的值找错误,这也要求程序员选对数据类型。另外,C语言的强制类型转换(显式转换)也可能出现此类问题。

C语言的缺点之二——指针的危险性:用指针取址存址时,如果让指针随机指向,指针可能会找到一大片空白区域,这样还好,但如果指针指到了有数据的地方,那么新的数据会将原数据覆盖,这个程序可能要完蛋了。所以如果不恰当的使用指针是很危险的。

另外,C语言是面向过程的语言,其数据的封装性差;其语法比较灵活,所以自然容易发生问题,这些也是C语言的缺点。

C语言有高级语言的特点,相比汇编语言更加易于理解,又有低级语言的特点,可以直接访问物理内存,所以也被称为中级语言。

  • C++:

C++是C的后辈,弥补了诸如强制转换、指针等操作可能带来的不安全性,又增加了数据封装,提高安全性,实现了面向对象编程和泛型编程(模板等,如标准模板库STL),具有封装、继承、多态三大特性。C++和C语言具有很好的兼容性,简单来说,C++是C的拓展。缺点是较为复杂,难以理解;没有垃圾回收机制管理内存,需要程序员自行操作。

  • Java:

Java取消了C++中复杂的指针、多重继承等操作,增添了安全机制,是纯粹的面向对象编程语言,相比C++复杂度大幅降低。作为混合型语言,由于Java虚拟机的应用,它可以一次编译,处处运行,具有很好的跨平台性,还增加了垃圾回收机制,实现自动管理内存,但这同时也为其带来了局限性,相比C++不适合大型程序的开发。

  • C#:

C#是微软为了抗衡Java而设计的一种语言,也是为.NET框架量身定做的,是C/C++的远亲,但其与Java非常相似。它属于面向对象编程,同时又面向组件,其实这两者原理差不多,只是面向组件编程各个组件的关联性小,比起对象而言更能独立分工,修改一个不用修改所有。它也是混合型语言,和Java差不多,只是不是通过虚拟机,而是用CLR,其余方面两者可以说是惊人的类似了。

  • 计算机中的脚本取意自编剧的脚本,设计的初衷是写一个脚本来代替人进行一系列无脑的批量操作,提高工作效率。编写脚本的语言是脚本语言,特点是比较简单,语法不严格,属于解释型语言(解释型语言包括脚本语言,脚本语言是以文本形式直接解释执行的,而解释型语言能够解释执行的除了文本形式之外,还有中间代码),也被叫做动态语言(注意动态语言和动态类型语言不是一个概念),即程序运行时可以改变其结构的语言。脚本语言相对于其它编程语言来说,其语法和规则不太严格,但一大缺点是执行速度慢。
  • Python:

Python是一种脚本语言,解释型就不用说了,其较为显著的特点就是简单易学,经过了多层抽象使得程序员不需要关注和明白底层细节,既支持面向过程,又支持面向对象,其具有伪代码的特点,在表达相同的事物时比其它语言更加简洁易懂。它开源且免费,应用也随之广泛,多用于大数据、人工智能等领域。

  • 爬虫是一种程序,类似于孙悟空的一撮毫毛吹出了无数个分身小弟,然后小弟们去各个网站搜集信息再运回来,当孙悟空随便问哪一个妖怪的名字时,小弟就会给他答案。百度等搜索引擎也是用了这种技术,他们在万维网上到处爬行,名字由此而来。
  • PHP:

PHP是超文本预处理器,主要用于Web开发,应用不太广泛。它是开源的脚本语言,简单易上手,不过生态不是太好。它支持面向对象和面向过程。

  • JavaScript:

JavaScript(JS)之所以叫JavaScript,是因为它想蹭Java的热度,其与Java本身没有太大的关系。说它是一种客户端脚本语言是因为刚开始的时候其主要用在浏览器上,属于客户端,但后来它就不仅仅局限于客户端,能跑到服务器端了(得力于Node.js的帮助),这可以说是一种习惯叫法。它是面向对象编程,动态类型语言,弱类型语言。它依赖于浏览器,与操作系统无关,所以跨平台性好。其多用于前端开发,制作页面动态效果。

  • Go:

Go,也称Golang,开发者在吐槽C++增添复杂度的同时,希望新建一门兼具编译和执行效率的语言,使其能更好的应用于服务器端的开发。Go语言综合了C/C++和Python上的显著优势,编译快,运行也快,与C语法较为接近,增加了垃圾回收机制,是静态强类型语言。Go语言虽然是编译型语言,但是在各个平台上都能运行,通过设置不同的环境变量来进行交叉编译。其多用于服务器编程、网络编程、云开发等。

  • 云计算是一种计算方法(分布式计算),也是一种服务,用户、企业无需花大额钱购买多台计算机构建小型网络,只需从云这个大网络中掏少量的钱来获取自己所需要的信息。就好比用户可以买一个发电机来供家庭用电,也可以连上国家电网,用多少电付多少电费。
  • Ruby:

Ruby是一种纯面向对象的脚本语言,类似Java也是通过虚拟机解释运行。Ruby被公认为一门优雅的编程语言,以人为中心,尽可能让机器做更多的事情。Ruby是靠Rails框架流行起来的,但是依然没有Java、Python等有热度,应用还是主要在Web开发,相比其它的编程语言信息资源是比较少的,它能做的事情别的语言也能做。

  • Rust:

Rust是一种静态编译型语言,类似于C++,性能差不多,其最突出的优势是安全性高,应用范围广泛,是专注于安全的系统编程语言。Rust对于新手比较难学,作为一门新兴的语言,生态环境稍弱,但是发展前景良好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值