楼主: chenjieren
6174 36

[学习分享] 浅谈SAS 9.3新特性之PROC GROOVY [推广有奖]

  • 0关注
  • 12粉丝

副教授

22%

还不是VIP/贵宾

-

威望
0
论坛币
241 个
通用积分
1.1761
学术水平
13 点
热心指数
20 点
信用等级
7 点
经验
1330 点
帖子
62
精华
0
在线时间
1350 小时
注册时间
2007-7-21
最后登录
2013-8-14

楼主
chenjieren 发表于 2013-1-1 12:12:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
点此查看原帖

SAS中文论坛FTP站,24*7运行为大家服务,免费上传下载海量SAS资料。

本帖隐藏的内容

在2013年元旦,心血来潮翻了下proc groovy,想与大家分享下,希望能够抛砖引玉。

Groovy是一个基于Java虚拟机的敏捷动态语言。它构建在强大的Java语言之上 并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征,为Java开发者提供了现代最流行的编程语言特性,而且学习成本很低(几乎为零)。Groovy支持DSL(Domain Specific Languages领域定义语言)和其它简洁的语法,让你的代码变得易于阅读和维护。Groovy拥有处理原生类型,面向对象以及一个Ant DSL,使得创建Shell Scripts变的非常简单。在开发Web,GUI,数据库或控制台程序时 通过减少框架性代码大大提高了开发者的效率。它支持单元测试和模拟(对象),可以简化测试;无缝集成 所有已经存在的 Java对象和类库;直接编译成Java字节码,这样可以在任何使用Java的地方使用Groovy。
http://groovy.codehaus.org/

SAS在9.3版本中开始支持Groovy,我个人觉得的确是个进步。SAS面向过程的编程方式一直被许多Java和C的程序员所诟病,无法像面向对象编程方式那样提供强大而丰富的类库实现复杂逻辑的大规模重用。但是SAS语言已经发展的这一步了,不可能重构,否则又需要一个很长的开发和学习的过程,代价实在太大。所以最可行的方法就是增加与其他语言的接口。SAS Intergation Technology模块就是干这个事情的,它提供了对于VB,C和Java等等语言的接口,但是要收费。这次的PROC GROOVY是在SAS Base模块下的新过程步,应该是包含在Base模块许可证中的功能,所以应该是“免费”的。有了PROC GROOVY就可以利用Groovy面向对象的特征,轻松实现类的编写重构,编译存储和调用重用。甚至还可以直接使用外部现成的Groovy类,帮助你实现字符串和数据等的复杂逻辑处理。SAS本身的PROC GROOVY就是一个接口,没有太多的花头,我们所要做的工作就是需要学习下Groovy语言的编程。不过只要你有Java编程的经验,这个学习过程需要花费的代价基本是零。但是SAS为什么选择Groovy语言,我还是不知道。

PROC GROOVY的使用语法非常简单,可以参考 http://support.sas.com/documentation/cd ... l857d2.htm
代码: 全选PROC GROOVY <classpath options>;
ADD classpath options;
EVALUATE <(LOAD | PARSEONLY | NORUN)> “Groovy statement string” <arguments>;
EXECUTE <(LOAD | PARSEONLY | NORUN)> Groovy file name | fileref <arguments>;
SUBMIT <(LOAD | PARSEONLY | NORUN)> <arguments>;
Groovy statements
ENDSUBMIT;
CLEAR;
QUIT;

我始终认为最好的学习方式就是看实例,所以我讲个Hello World的例子,简单看一下PROC GROOVY编程。
代码: 全选proc groovy classpath=cp;
  submit parseonly;
    class Greet {
      def name
      Greet(who) { name = who[0].toUpperCase() +
                      who[1..-1] }
      def salute() { println "Hello $name!" }
      }
  endsubmit;
quit;

proc groovy classpath=cp;
  eval "g = new Greet(""world""); g.salute()";
quit;


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:ROC Hello World Technology Statements statement 中文论坛 编程语言 虚拟机 开发者 Java

本帖被以下文库推荐

沙发
1107355 在职认证  发表于 2013-1-1 12:15:00
谢谢分享!!!

藤椅
guo.bailing 发表于 2013-1-1 12:18:13
自助者,天助之!

板凳
dongh79 在职认证  发表于 2013-1-1 12:18:26
adfadsfasdfadsf

报纸
huominbo888 发表于 2013-1-1 12:23:42
砍砍

地板
denver 发表于 2013-1-1 13:45:05
围观一下
Denver大家一起读Paper系列索引贴:
https://bbs.pinggu.org/thread-1430892-1-1.html

7
花茶物语 发表于 2013-1-1 14:15:14
看看

8
Inanono 发表于 2013-1-1 19:16:01
ggggg

9
ljh_9802 发表于 2013-1-1 23:00:22
kankanle

10
CTR1013 发表于 2013-1-2 23:19:14
看看,学习一下

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 22:47