一个完整的计算机系统由硬件和软件组成,用户通过软件与计算机进行交互,而软件则依赖于硬件运行。软件可以分为两大类:应用软件和系统软件。普通用户主要与应用软件互动,这些软件是为满足用户特定需求而开发的。例如,普通用户使用的软件包括社交媒体应用和办公软件,而专业人士可能使用photoshop进行设计,或使用cad进行工程制图。这些都是我们常见的应用软件。应用软件直接为用户提供服务,而系统软件则负责管理底层硬件资源,并为应用软件提供支持。例如,操作系统是一种典型的系统软件,无论是抖音、qq还是美图秀秀,在手机上运行时都需要安卓或ios操作系统的支持。操作系统作为系统软件,为上层应用软件提供了必要的服务。此外,许多应用软件在开发时需要使用数据库功能,数据库管理系统为应用软件提供了数据库相关的服务,因此也属于系统软件。在网络时代,几乎所有应用软件都需要网络软件的支持来传递信息,如网卡驱动器,这类网络软件也属于系统软件,为上层应用软件提供了服务和支持。软件开发通常使用高级语言编写,而将高级语言翻译成机器可识别的低级语言则需要语言处理程序的服务。在软件开发过程中,还需要调试软件功能,调试程序作为一种服务程序,也为上层应用软件提供服务。开发软件时,我们会使用一些标准程序库,如printf,这些标准程序库也为上层应用软件开发提供了支持。以上提到的都是系统软件,它们类似于软件世界的基础设施,为上层应用软件提供了基本的功能和服务。这些软件运行在计算机硬件之上,而计算机硬件只能识别二进制的机器语言,因此直接用二进制机器语言编写程序是不现实的。
通常,程序是用高级语言编写的,然后通过编译和汇编将其翻译成低级的机器语言。例如,编写一个C语言程序后,通常需要经过编译和汇编两步将其翻译成等价的机器语言程序。编译器将高级的C语言翻译成等价的汇编语言,然后汇编器再将汇编语言翻译成等价的机器语言。汇编语言使用助记符,更易于人类理解,而直接阅读二进制机器语言则非常困难。这就是三种级别的语言:我们现在使用的C、C++、Java、Python等都是高级语言,而汇编语言和机器语言属于低级语言。刚才提到的C语言程序通过编译和汇编两步被翻译成等价的机器语言程序。还有一些编程语言可以通过编译器直接将源程序翻译成机器语言程序,也就是说有些编程语言会跳过汇编语言这个中间阶段。
还有一些解释型语言,如JavaScript或shell脚本,这些语言在程序执行时通过解释程序将高级语言代码翻译成等价的机器语言指令。解释程序和编译程序都将高级语言翻译成机器语言,但二者有何不同呢?首先,编译程序将高级语言编写的源程序一次性全部翻译成机器语言程序,然后再执行这个机器语言程序。例如,在Windows电脑上用C语言编写的程序最终会生成一个.exe文件,这个.exe文件就是机器语言程序,可以直接被CPU识别和运行。相比之下,解释型语言在程序执行时,每执行一句程序代码,就将这一句代码翻译成等价的机器语言指令,也就是说每执行一句就翻译一句。这意味着如果一个程序语句被多次执行,就需要多次翻译,导致效率降低。
假设现在需要将A说的中文翻译成英文给B听,编译程序的方式类似于将A说的中文一次性全部翻译成纸质文件,然后交给B,而解释程序的方式类似于同声传译,A说一句翻译一句。想象一下,如果A不断重复同一段中文,使用前一种方式只需要翻译一次,而使用同声传译的方式,无论A重复多少遍,每次都需要重新翻译一次。因此,解释型语言通常比编译型语言效率低。最后,需要补充一个概念,无论是编译器、汇编器还是解释器,它们都是将高级语言翻译成更低级的语言,所以这三者都可以统称为翻译程序。一个程序或软件是由若干指令序列组成的,CPU负责执行这些指令,通过硬件完成每条指令所要求的功能,最终实现软件的功能目标。实际上,软件和硬件在逻辑功能上是等价的,同一个逻辑功能可以用硬件实现,也可以用软件实现。
举个例子,假设用户需要计算985乘以6,如果硬件本身设计了可以直接支持乘法运算的电路,我们就可以使用一条乘法指令来完成这个乘法运算,这就是用纯硬件的方式实现。如果CPU没有乘法电路,也不支持乘法指令,我们可以采取软件的方式实现。例如,如果硬件只支持加法,我们可以编写六条加法指令来完成六个985相加的操作,逻辑上相当于985乘以6。通过这个例子可以理解软件和硬件的逻辑功能等价性。同一个功能可以用硬件实现,也可以用软件实现。用硬件实现需要设计复杂的电路,制造成本更高,但运算速度更快,性能更强。用软件实现可以降低电路的制造成本,但运算性能会下降。
既然软件和硬件在逻辑功能上是等价的,那么在设计计算机系统时,计算机系统需要多少种电路,支持多少种指令,这是一个需要考虑的问题。这就引入了指令集体系结构的概念,英文缩写为ISA。指令集体系结构规定了软件和硬件之间的界面。在设计计算机系统的指令集体系结构时,需要定义计算机可以支持哪些指令,每条指令的作用和用法是什么,也就是要清晰地定义软件和硬件之间的界限。软件和硬件在逻辑功能上是等价的,可以用两种方式实现同样的逻辑功能,采用软硬两种方式实现所带来的性能和成本各有利弊。因此,在设计计算机系统时,二者之间的界限需要被清晰划分和定义,既要考虑性能问题,也要考虑成本问题。
在本节中,我们了解了计算机软件,计算机软件可以分为系统软件和应用软件两类,并介绍了三种级别的语言:高级语言、汇编语言和机器语言。为了将更高级的语言翻译成机器可识别的低级语言,通常需要编译器、汇编器或解释器的帮助,这三者都可以统称为翻译程序,都是将更高级的语言翻译成更低级的语言。这些概念可能会在选择题中进行考察。本节最后还介绍了软件和硬件在逻辑功能上具有等价性,同一个功能可以用硬件实现,也可以用软件实现
。用硬件的方式实现性能高,成本也高,用软件的方式实现性能较差,成本也较低。为了综合考虑性能和成本的平衡,在设计计算机系统时,需要考虑计算机系统的指令集体系结构,也就是要清晰界定计算机的硬件和软件之间的界限。需要设计出计算机可以支持哪些指令,每条指令的作用和用法是什么。
# python
# windows
# c语言
# 操作系统
# cad
# 抖音
# 电脑
# qq
# c++
# 社交媒体应用
# shell脚本
相关文章:
影之刃3左殇职业材料获取全攻略:从入门到毕业的江湖寻宝之旅
电竞机也能拍大片!荣耀WIN搭载旗舰拍照算法 罗巍:绝对是同档位最顶
苹果、高通、联发科9月正面交锋!传三大晶片商首批2奈米SoC同月亮相
Italdesign | 更符合生产技术要求的造型服务
望山楂猛男诱惑,比椰树还色?!
国产之光!OPPO Find X9 Pro被外媒评为2025年最佳手机
深度复盘鸿蒙版微信这一年:2025 年,我们在鸿蒙上重新认识微信
全球AI急等NVIDIA救命:明年3月新一代GPU登场 回击AI泡沫
最特别的生日!红魔姜超用红魔11 Air吹灭生日蜡烛
iQOO Z11 Turbo前瞻:性能影像全面升级
蹭五月天热点,脑白金又来洗脑了?
Manus 产品立项初期会议纪要
Intel 18A芯片厂揭秘:已有4台EUV光刻机 月产4万片晶圆
反传统的Patagonia,不想赚钱
《女巨人游乐场》更新圣诞造型 白袜红高根践踏城市
别再误解他们懒惰!Z世代创办人:年轻人高度依赖AI 是出于焦虑
遗迹三层地龙开荒指南:核心战术拆解
刘亦菲遇上美团外卖神抢手?两“神”碰撞太精彩!
《塞尔达传说:旷野之息》VR mod发布 可实现与角色的触觉互动
《死亡森林》重制版登陆Switch 经典恐怖冒险
生可乐火了!品牌开始扎堆健康营销?
Fish Shell 4.3 正式发布 — 更强脚本支持与交互体验提升
打造嘉兴新名片!追觅科技用标杆级智造基地强产业 以“未来教室”赋能科创教育
瑞幸“半杯冰”惹众怒!蜜雪冰城捅上第一刀
B社总监希望《辐射5》能让玩家玩600个小时
一年两部!曝法老控明年除《空之轨迹 2nd》还有新作
Meta 数十亿美元收购通用 AI 智能体 Manus
用鸿蒙一年才懂:这些创新功能,重新定义了社交App的好用程度
三星Z TriFold耐用性不及Z Fold 7?测试时手机当场报废
昂达推出Intel Z790主板新品:四槽DDR4内存、售价779元
OPPO Pad Air5上架:4年流畅耐用 1899元起
风刃连招实战攻略:撕裂战场的关键技巧
京东航空开通“深圳 = 十堰”航线,鄂西北全货机货运实现“从无到有”
《星际:异端先知》光头女主被网友改成性感|美女|
《光与影:33号远征队》媒体评分远超团队预期:原预估80分左右!
OpenAI 发布圣诞特别版模型:GPT-5.2-Codex-XMas
任天堂公布e商店2025年度游戏销量排行 马车登顶
ChatGPT 移动端更新:支持自定义“思考时间”切换功能
以“洁净”温暖童年,用“科技”照亮未来——海信洗衣机爱心进驻九江太阳村
iQOO Z11 Turbo预热开启,一杯就是满配
英伟达完成 50 亿美元入股英特尔的战略投资
NotebookLM把资料直接「讲给你听」!最长近30分钟
《黑神话:悟空》杨奇微博发文 提到游戏制作流程!或有合作
Go 语言之父 Rob Pike 被一封 AI 邮件惹冒火,直接爆粗
如何锻造御灵刀寒狱冰天 打造勿忘冰系毕业利器
集邦咨询:在内存涨价潮中,苹果要比友商更从容
《鬼泣》《鬼武者》等都源于《生化危机》
艾尔登法环虫丝枪性能剖析:异形祷告的压制艺术
小米推出iPhone妙享桌面:iPhone上可直接镜像操控小米手机
血焰突袭!安帕赫的狂刃近战爆发攻略
相关栏目:
【
广告资讯37196 】
【
广告推广143353 】
【
广告优化89630 】