高级语言程序设计(把用高级语言定的程序转换为可执行程序)
高级语言程序设计,把用高级语言定的程序转换为可执行程序?
把用高级语言写的程序转换为可执行程序,要经过的过程叫做编译与连接装配。
高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法。
一个高级语言源程序,必须经过编译与连接装配两步后才能成为可执行的机器语言程序。
什么是高级语音?
高级语言(High-level programming language)相对于机器语言(machine language,是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据)而言。是高度封装了的编程语言,与低级语言相对。它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。由于早期电脑业的发展主要在美国,因此一般的高级语言都是以英语为蓝本。
在1980年代,当东亚地区开始使用电脑时,在日本、台湾及中国大陆都曾尝试开发用各自地方语言编写的高级语言,当中主要都是改编BASIC或专用于数据库数据访问的语言,但是随着编程者的外语能力提升,现时的有关开发很少。
面向对象语言出现在第几代计算机?
第一代:汇编语言
第二代:面向过程的编程语言
第三代:面向对象的编程语言
第四代:数据库编程语言,如各种数据库的SQL语言
plc今后会被单片机代替吗?
这是一个很有意思的话题,我就个人经历谈谈我对两者的看法吧,仅供参考。
07研究生期间,我当时研究方向是嵌入式,但因为老板的军工项目接触了PLC。项目是在国家的一个研究所后来改制成有限责任公司进行,目前应该是行业内非常大的一家企业了。一开始接触项目时,我发现是个大工程,涉及两台台PLC,其中PLC是三菱的,电机是安川的,开关是欧姆龙的,还有编码器是光阳的,编程语言梯形图居然有30000行代码。你知道要完成什么功能吗?一个智能军工焊接的系统工作站,简单理解就是焊接机器人群。而我们的项目目标是设计嵌入式pcb完全取代PLC。
最后的结果是我们设计了五块嵌入式pcb,一个作为主节点控制端,另外四块作为从节点执行端(这四块一模一样)完成了整个项目。代码行数最后统计2000行,完全的C语言+ucos操作系统就完成了,简单易懂。这些代码是我花不到一周完成的,而我当时去自学并完全弄懂梯形图花了1个月。其实,整个项目难点不在于软件这些,而是嵌入式硬件设计的可靠性怎么能在工业的强干扰情况下还稳定运行。
总之,我要说的是在工业方面,梯形图对于大型系统真的复杂,这个完全被嵌入式单片机秒杀了。当然前提是,你的嵌入式单片机能替代别人plc。
简述编译程序的主要功能?
词法分析:
词法分析是编译过程的第一个阶段。主要任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(一些场合下也称单词符号或符号)。
语法分析:
语法分析是编译过程的第二个阶段。语法分析的任务是在词法分析的基础上将单词序列分解成各类语法短语,如“程序”、“语句”、“表达式”等。这种语法短语也称为语法单位,可表示成语法树。
语义分析:
语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。
中间代码生成:
在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将原程序变成一种内部表示形式,这种内部表示形式叫作中间语言或中间代码。
中间代码优化:
这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间。
目标代码生成:
这玩意阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。