程序设计语言的特性——心理特性、工程特性、技术特性
程序设计语言有三个特性,他们是:心理特性、工程特性和技术特性。
1、心理特性:是指影响程序员心理的语言性能,包括歧义性,简洁性,局部性、顺序性和传统性几个方面。
- 歧义性:是指某些语言虽然在编译程序中只有一种解释,但在人们看来却可能产生两种或多种不同的解释。
- 简洁性:是指人们必须记住的语言成分的数量。
- 局部性和顺序性:局部性指语言的联想性,模块的高内聚低耦合使局部性得以加强,提供异常处理的语言特性则削弱局部性。顺序性强则使人们易理解,易接受。
- 传统性:由于人们使用语言有一种习惯性。若新语种的传统性强,则人们学习起来容易接受。反之则需要更多时间来学习。可见传统性容易影响人们学习新语种的积极性。
2、工程特性:从软件工程的观点,程序设计语言的特性着重考虑软件开发项目的需要,因此对程序编码有如下要求:可移植性、开发工具的可利用性、软件的可重用性及可维护性。
- 可移植性:是指程序从一个计算机环境移植到另一个计算机环境的容易程度。
- 开发工具的可利用性:就是说一个开发工具好不好用,功能多不多,强不强。比如vc++就是一个开发工具。
- 软件的可重用性:指编程语言能否提供可重用的软件成分,重用时需要修改调整的内容多不多。
- 可维护性:一个易读懂,易修改的软件就是可维护性好的软件。
3、技术特性。支持结构化构造的语言有利于减少程序环路的复杂性,使程序易测试、易维护。
程序设计语言的特性——心理特性、工程特性、技术特性相关推荐
- [iBoard 电子学堂][第二卷 C程序设计语言 ]第一篇 C语言简介
一.C语言发展史 C语言是一种程序设计语言,由于它既有高级语言的特性,又有低级语言的特性,所以它既能编写基于操作系统的大型应用程序,也能编写直接操作硬件的程序,也就是我们称之为"裸奔&q ...
- 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态
介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- c语言中异或指令,C语言总结之异或运算的一些特性及巧妙应用
原标题:C语言总结之异或运算的一些特性及巧妙应用 1.一个数和自己做异或的结果是0.如果需要一个常数0,x86平台的编译器可能会生成这样的指令: xorl %eax, %eax.不管eax寄存器里的值 ...
- c语言 字符串 正序再倒序_新特性解读 | MySQL 8.0 索引特性3 -倒序索引
原创作者:杨涛涛 我们今天来介绍下 MySQL 8.0 引入的新特性:倒序索引. MySQL长期以来对索引的建立只允许正向asc存储,就算建立了desc,也是忽略掉. 比如对于以下的查询,无法发挥索引 ...
- harmonyos2.0三大技术特点,一文解析HarmonyOS的技术特性、子系统架构、四大技术特性...
一. 鸿蒙OS整体介绍 华为发布了HarmonyOS 2.0,俺也赶个时髦,给大家简单介绍下HarmonyOS. 定义 首先,我们来看一下官方对HarmonyOS的定义.根据官方的定义,Harmony ...
- 鸿蒙系统全是外国技术,华为正式发布鸿蒙操作系统!四大技术特性亮眼
8月9日,华为消费者业务今天在其全球开发者大会上正式向全球发布其全新的基于微内核的面向全场景的分布式操作系统--鸿蒙OS. 鸿蒙OS将作为华为迎接全场景体验时代到来的产物,发挥其轻量化.小巧.功能强大 ...
- 鸿蒙OS执行效率,鸿蒙OS知多少:四大技术特性,三年遍地开花
原标题:鸿蒙OS知多少:四大技术特性,三年遍地开花 8月9日,华为消费者业务在其全球开发者大会上正式向全球发布其全新的基于微内核的面向全场景的分布式操作系统--鸿蒙OS.随着华为全场景智慧生活战略的不 ...
- HarmonyOS技术特性
HarmonyOS技术特性 硬件互助,资源共享 多种设备之间能够实现硬件互助.资源共享,依赖的关键技术包括分布式软总线.分布式设备虚拟化.分布式数据管理.分布式任务调度等. 分布式软总线 分布式软总线 ...
- [转]C# 2.0新特性与C# 3.5新特性
C# 2.0新特性与C# 3.5新特性 一.C# 2.0 新特性: 1.泛型List<MyObject> obj_list=new List(); obj_list.Add(new MyO ...
最新文章
- TotoiseSVN的基本使用方法
- Android 系统各种StreamType 的Volume关联和Mute设置
- 有的人在25岁时就死了,但在75岁时才被埋葬:周鸿祎
- JAVA实现服务器间拷贝文件,寻找在Java服务器之间传输大文件的好方法
- 22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?
- Mac笔记本Postman升级为新版本后,打开时一直转圈,无法使用
- 5. jQuery 效果 - 隐藏和显示
- 毕业题目:Matlab GUI界面
- c语言 解析通信报文,基于DL/T645—2007通信规约报文的分析
- 2012最新网上购物排行榜
- 在ubuntu中安装DroidCam
- PLSQL下载及安装参照
- 安装nagios出现的两个错误记录
- 电子类研究生的STM32小白入门 一个定时器 四个channel复用映射 实现超声波四路测距
- 30、三维表面重建-Convolutional Occupancy Network
- web自动化断言_无需断言即可进行Web开发的自动化测试
- 大唐杯简要介绍及备赛事项
- Mac 不能将项目xxx移到废纸篓,因为它已打开
- 如何设计一个网页爬虫
- 安陆唐明惠 不堪回首的高考
热门文章
- python篇---在windows下利用pyinstaller打包成exe
- java 群发求职邮件
- Caffe(13)--(SSRNet模型)Keras转Caffe教程
- 我的NVIDIA开发者之旅——Caffe教程(3)使用sklearn和caffe进行简单逻辑回归实践
- 软件项目交付件模板整理清单
- Docker镜像下载到本地及恢复
- shoppping collection
- 计算机桌面如何分区,学会电脑桌面整理分区,提高工作效率
- 【漏扫工具】awvs、appscan、xray下载、安装、使用方法(附带网盘链接)
- 应用程序虚拟化工具(VMware ThinApp)5.2.1汉化绿色企业版