计算机编程的相关概念

计算机硬件(Computer hardware)
计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。按照冯诺依曼体系,分为运算器,控制器,存储器,输入设备,输出设备。其中运算器和控制器通常被合称中央处理器(CPU)。
存储器(Memory)、RAM、ROM
计算机系统中的记忆设备,用来存放程序和数据。按照用途分为主存储器(主存,也称内存)和辅助存储器(辅存,也称外存)。
内存直接与CPU相连,是计算机中的主要存储器,当前运行的程序和数据都存储在其中。现代的内存大多是半导体存储器,采用大规模集成电路或超大规模集成电路器件。按照其工作方式分为随机存储器(Random Access Memory)和只读存储器(Read-Only Memory).
RAM,计算机工作时使用的程序和数据等都存储在RAM中。RAM中存储的数据,断电后就会消失。通常所说的内存大小就是指RAM的大小,一般以MB或GB为单位。
ROM,只能读出而不能随意写入信息的存储器。ROM中的内容是由厂家制造时用特殊方法写入的,或者要利用特殊的写入器才能写入。当计算机断电后,ROM中的信息不会丢失。当计算机重新被加电后,其中的信息保持原来的不变,仍可被读出。ROM适宜存放计算机启动的引导程序、启动后的检测程序、系统最基本的输入输出程序、时钟控制程序以及计算机的系统配置和磁盘参数等重要信息。
外存:软磁盘(简称软盘)和硬磁盘(简称硬盘),光盘、U盘、移动硬盘等等。
手机中的RAM和ROM
和计算机的概念几无差别。RAM指的就是手机的内存,RAM越大,手机就越流畅。ROM,手机的存储器。对于手机来讲,ROM包含了安卓系统、手机软件、用户文件(照片、视频等)。除了Root前手机系统不能更改外,剩余的空间就可以让用户随意存储一些照片视频等文件。ROM越大,代表手机能够存储的东西就越多,与手机的流畅性关系不大。
低级语言和高级语言
编程语言一般可以分为低级语言和高级语言。低级语言又分为机器语言,汇编语言。
机器语言:用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
汇编语言:为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用"ADD"代表加法,"MOV"代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言。但仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。
高级语言:与自然语言相近并为计算机所接受和执行的计算机语言称高级语言,是面向用户的语言。
低级语言和高级语言的区别
低级语言更倾向于机器指令。而高级语言更倾向于人类的思维模式。低级语言执行效率高,因为越低级的语言,形式上越接近机器指令,对硬件的可控性就越高。而高级语言都要通过编译器翻译成机器码,不管编译器多么强大,总会产生一些冗余,这样自然低级语言就比高级语言的执行效率就高。
对于高级语言来讲,随着现在硬件的性能越来越高,这个劣势会越来越不明显,而且高级语言符合人类思维,编写简单,因此普遍使用高级语言。
总得来说,高级语言实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好。低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差
强类型语言和弱类型语言
强类型语言: 强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。强类型定义语言是类型安全的语言。如Java
弱类型语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。如JavaScript
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误
动态类型语言和静态类型语言
动态类型语言:在运行时才确定数据类型的语言。即编译时与类型无关。一般在变量使用之前不需要声明变量类型,而变量的类型通常是由被赋的值的类型决定。 如php、Python和Ruby。
静态类型语言:一种在编译时数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。Java和C是静态类型定义语言。
编译型语言和解释型语言
高级语言按照程序的执行方式分为编译型语言和解释型语言。
编译型语言:通过专门的编译器,针对特定平台(OS)将某种高级语言源码一次性“翻译”成该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式,这个转换过程叫做编译(Compile)。编译生成的可执行程序可以脱离开发环境,在特定平台独立运行。但可移植性差,必须将源码复制到特地给平台,然后针对特定平台修改。如C、C++,Objective-C。
解释型语言:使用专门的解释器将源程序逐行解释成特定平台的机器码并立即执行的语言。不能脱离解释器独立运行,运行效率低,但跨平台易,只需提供特定平台的解释器即可。如Ruby,python。
编程的本质
编程的本质其实就是对内存中数据的访问与修改。因此语言提供了一种变量的机制。

本文只为对自己掌握的知识进行总结,无意对文中知识引用的作者侵权。如您觉得侵权,联系我第一时间删除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值