在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部份代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。函数在面向过程的语言中已经出现。是结构和类的前身。本身就是对具有相关性语句的归类和对某过程的抽象。
扩展资料:
在一个加工程序中,如果其中有些加工内容完全相同或相似,为了简化程序,可以把这些重复的程序段单独列出,并按一定的格式编写成子程序。主程序在执行过程中如果需要某一子程序,通过调用指令来调用该子程序,子程序执行完后又返回到主程序,继续执行后面的程序段。子程序是一个概括性的术语,任何高级程序所调用的程序,都被称为子程序。它经常被使用在汇编语言层级上。子程序的主体(body)是一个代码区块,当它被调用时就会进入运行。
参考资料来源:百度百科-子程序
参考资料来源:百度百科-数控编程
类属子程序即子程序为类属单元。下面通过一个 Swap 的例子来讲解:000 -- filename:Swap.adb
001 with Ada.Integer_Text_IOuse Ada.Integer_Text_IO
002 procedure Swap is
003 generic
004type Element_Type is private
005procedure Generic_Swap(Left, Right : in out Element_Type)
006procedure Generic_Swap(Left,Right:in out Element_Type) is
007Temporary : Element_Type
008begin
009Temporary := Left
010Left := Right
012Right := Temporary
013end Generic_Swap
014 procedure Swap is new Generic_Swap(Integer)
015A, B : Integer
016 begin
017A := 5
018B := 7
019Swap(A, B)
020 end Swap
[003]-[004] 声明一个类属数据类型 Element_Type,[005]声明一个类属子程序 Generic_Swap,它的参数是类属类型(generic type),[006]-[013] 是 Generic_Swap 函数的具体实现。但这些还不够,Element_Type 并不是什么整型、浮点型等具体数据类型,只是抽象意义上的类属类型,为形式参数。因此还需要[014] 创建实际的子程序 Swap,这里的 Integer就是一个实际参数,表示 Swap 能接受 Integer 类型的参数,这个步骤称之为实例化。当然为了可以交换浮点等其它数据类型,也可以再添加:
procedure Swap is new Generic_Swap(Float)
procedure Long_Swap is new Generic_Swap(Elementary =>Long_Integer)
...
基于类属子程序的实际程序的数目从理论上讲没有限制。重名的子程序在使用时由编译器自动区分。从这个例子,大家应该明白了类属单元的好处--实际应用中省了很多重复的工作。
汇编语言的实质和机器语言是相同的,都是直接对硬件 *** 作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的 *** 作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际 *** 作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的 *** 作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)