Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SAS语言提供的宏编程的好处是什么?_Java_Macros_Sas - Fatal编程技术网

Java SAS语言提供的宏编程的好处是什么?

Java SAS语言提供的宏编程的好处是什么?,java,macros,sas,Java,Macros,Sas,在SAS中,整个“宏”概念的效用到底是什么?我的意思是,与编写可以直接编译和运行的程序相比,编写可以转换为程序的程序有什么意义 我只有JAVA方面的经验,我认为JAVA不允许宏或元编程。因此我想知道宏编程的意义是什么。它不能只是封装一些业务逻辑,因为为此我们使用函数/方法/子例程等。SAS宏语言的主要目的是作为SAS代码生成器。SAS宏通常会生成SAS代码(可能是许多数据步骤和过程步骤,也可能是一条语句的一部分)。通常,生成SAS代码比键入(或复制粘贴)更有用(键入更少)。人们确实使用宏来实现函

在SAS中,整个“宏”概念的效用到底是什么?我的意思是,与编写可以直接编译和运行的程序相比,编写可以转换为程序的程序有什么意义


我只有JAVA方面的经验,我认为JAVA不允许宏或元编程。因此我想知道宏编程的意义是什么。它不能只是封装一些业务逻辑,因为为此我们使用函数/方法/子例程等。

SAS宏语言的主要目的是作为SAS代码生成器。SAS宏通常会生成SAS代码(可能是许多数据步骤和过程步骤,也可能是一条语句的一部分)。通常,生成SAS代码比键入(或复制粘贴)更有用(键入更少)。人们确实使用宏来实现函数和子例程


也就是说,如果您是SAS的新手,我建议您现在不要学习宏语言。在学习生成SAS代码的宏语言之前,先学好SAS语言更有意义。许多有经验的SAS程序员完全避免使用宏语言

SAS宏语言的主要用途是作为SAS代码生成器。SAS宏通常会生成SAS代码(可能是许多数据步骤和过程步骤,也可能是一条语句的一部分)。通常,生成SAS代码比键入(或复制粘贴)更有用(键入更少)。人们确实使用宏来实现函数和子例程


也就是说,如果您是SAS的新手,我建议您现在不要学习宏语言。在学习生成SAS代码的宏语言之前,先学好SAS语言更有意义。许多有经验的SAS程序员完全避免使用宏语言

我将尝试回答这部分问题:

与编写可直接编译和运行的程序相比,编写可转换为程序的程序有什么意义

  • 宏允许不容易执行的条件执行 在宏语言之外
  • 宏允许循环和迭代 控件-我不想写100次相同的代码
  • 宏为泛型代码提供了一种方法,可以将其视为Java或其他语言中的例程

虽然SAS有函数,但我认为它没有子例程和方法,这是宏语言要填补的空白的一部分

我将尝试回答这部分问题:

与编写可直接编译和运行的程序相比,编写可转换为程序的程序有什么意义

  • 宏允许不容易执行的条件执行 在宏语言之外
  • 宏允许循环和迭代 控件-我不想写100次相同的代码
  • 宏为泛型代码提供了一种方法,可以将其视为Java或其他语言中的例程

虽然SAS有函数,但我认为它没有子例程和方法,这是宏语言要填补的空白的一部分

Java支持面向对象编程范式。这允许您使用类、方法等来控制程序流,并实现与基本编程结构(如循环、if-then逻辑等)等效的功能

我不能100%确定SAS使用的编程范例的名称,我想我应该称之为顺序语言,因为代码只是一次从上到下执行1条语句

这意味着在SAS语言中,除了宏之外,该语言没有任何部分可以让您实现大多数语言认为理所当然的控制结构。它没有“过程”的概念(用在一般编程意义上)。SAS一次只执行一条语句,从上到下执行代码

SAS中宏代码的用途(在我看来)是:

  • 使程序数据驱动
  • 在控制结构中包装过程(即有条件地执行某些代码段、在循环中执行代码段等)
  • 生成执行前未知的所需代码
例如:

  • 仅当某个表已存在时才运行数据步骤
  • 在100个不同的表上运行
    proc freq
    语句(而不是复制/粘贴100个单独的
    proc freq
    语句,并在数据更改时维护它们)
  • 生成一个我碰巧不知道预执行时间的数字或单词,因为这些值可以简单地替换到代码中

宏可以让我们的生活更轻松,但它是有代价的。宏代码更难读/写/调试,如果有非宏驱动的解决方案,通常应该避免

Java支持面向对象编程范式。这允许您使用类、方法等来控制程序流,并实现与基本编程结构(如循环、if-then逻辑等)等效的功能

我不能100%确定SAS使用的编程范例的名称,我想我应该称之为顺序语言,因为代码只是一次从上到下执行1条语句

这意味着在SAS语言中,除了宏之外,该语言没有任何部分可以让您实现大多数语言认为理所当然的控制结构。它没有“过程”的概念(用在一般编程意义上)。SAS一次只执行一条语句,从上到下执行代码

SAS中宏代码的用途(在我看来)是:

  • 使程序数据驱动
  • 在控制结构中包装过程(即有条件地执行某些代码段,在循环中执行代码段,