菜鸟求助,到底什么是高级语言?

黑色的咖啡 2013-03-29 09:55:38
最近一直有个问题困扰着我,到底什么是高级语言?
从很多书上都可以了解到,最早以前的程序员是通过编写0,1代码来编程的,也就是直接让硬件来识别0,1,进而得到所需要的结果。后来由于这种编程方式过于繁琐,人们发明了汇编,用一些简单的单词的缩写来代表一些二进制串,提升了编程的效率,那也就是直接同硬件交互,换了种方式罢了。随着技术地发展,汇编也渐渐不能满足人们的需要,人们便发明了高级语言。高级语言将复杂的汇编进一步简化,发展出了更加简单,灵活的语法。
不知我的描述是否有误,若是这样的话,程序的产生总会经历这样一个过程:高级语言->汇编->机器语言。
我的问题便来了,既然高级语言仅仅是对机器语言的种种抽象,那经过编译后的程序代码应该可以直接更硬件交互才对,不需要操作系统的支持。不是说Windows操作系统就是用C语言写的么,在没有操作系统的情况下,编译器链接器等等也可以将高级语言成功地转换成一个二进制程序,那应当是我可以写出一个C/C++程序,只要硬件接口相同,无论什么平台都可以执行的啊。为什么说C程序是不可移植的,而java程序非要通过一个虚拟机来解释执行呢?(操作系统跟编译原理还没学到- -)
...全文
222 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
齐岳 2013-03-30
  • 打赏
  • 举报
回复
高级语言就是更贴近交流的语言,基本远离了机器语言,可以移植的的计算机编程语言。简单易懂,能通过各种语法结构更好的表达算法,不像机器语言那样010101看不懂,也不像汇编语言那样各种命令记不住。 1.高级语言接近算法语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作; 2.高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高; 3.高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高; 4.由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量
dracularking 2013-03-29
  • 打赏
  • 举报
回复
那它编译完的还不是最终能由硬件执行的机器码,而是依赖特定平台的中间码。
  • 打赏
  • 举报
回复
高级语言都是抽象的,跨平台 代码库如果设计时考虑了跨平台,例如boost编码时考虑了各种平台的差异,预编译好各种平台的动态运行库,可以给个人代码调用 当然也可静态编译
  • 打赏
  • 举报
回复
高级语言是抽象,可以跨平台,例如C++的BOOST 但一旦编译就特定平台了
  • 打赏
  • 举报
回复
没有操作系统就没法加载你的程序,没法管理代码的输入输出 不同的CPU机器语言不一样的(当然有部分有相同的指令集,例如MIPS),编译后二进制代码没有可移植性 学完操作系统再说吧

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧