Cadence skill 语言简介
Cadence提供二次开发的SKILL语言,它是一种基于通用人工智能语言—Lisp的交互
式高级编程语言(LISP即List Processing-表处理,是最早和最重要的符号处理编程语言
之一,它于1958年由美国的J. McCarthy提出,LISP在人工智能AI方面获得广泛应用)。
SKILL语言支持一套类似C语言的语法,大大降低了初学者学习的难度,同时高水平的
编程者可以选择使用类似Lisp语言的全部功能。所以SKILL语言既可以用作最简单的工具
语言,也可以作为开发任何应用的、强大的编程语言。 SKILL可以与底层系统交互,也提
供了访问Cadence各个工具的丰富接口。用户可以通过Skill语言来访问,并且可以开发自
己的基于Cadence平台的工具。
1. Skill语言和Lisp语言的关系
Skill函数提供两种表示法,一种是代数表示法,现在大多数语言采取这种方式,即
func( arg1 arg2 ...),另一种是前缀表示法,类似于Lisp语言,即(func arg1 arg2 ...)。这里
举个例子作为对比:
1.代数表示法
procedure( fibonacci(n)
if( (n == 1 || n == 2) then
1
else fibonacci(n-1) + fibonacci(n-2)
)
)
2.前缀表示法
(defun fibonacci (n)
(cond
((or (equal n 1) (equal n 2)) 1)
(t (plus (fibonacci (difference n 1))
(fibonacci (difference n 2))))
)
)
这里可以看到类似Lisp语言的表示法后面有很多右括号,而且函数和参数容易混淆,所以
一般推荐还是用常用的类C语言代数表示法
Skill程序就像一个list表,类似Lisp语言,程序的操作就像操作数据(list)一样,可以生
成,修改,求值等
2. 关于 Skill 函数
SKILL 语言支持一套类似 C 语言的语法,初学者有了一定的 C 语言基础,入门是很容
易的。Cadence 的工具可以通过 CIW,Bindkey,Form,Menu 等多种方式调用 skill 函数,
送到 skill 语言的解释器来执行各种操作。