Jess 간단한 문법 요약

Jes s 다운로드

Jess의 라이센스 버전을 다음 사이트에서 다운받을 수 있다. http://www.manning.com/friedman-hill 또는 http://herzberg.ca.sandia.gov/jess

 

Jess의 설치

Jess를 설치하고 실행하기 위해서는 먼저 J2SE가 설치되어야 한다. 버전은 1.2이상이면 된다.

다운받은 압축파일을 적당한 위치에 풀고 내컴퓨터의 환경변수의 CLASSPATHjess.jar를 추가시킨다.

 

Jess의 실행

다음과 같이 Jess 실행시킬 있다.

 

D:\Jess 61p7>java -classpath .;jess.jar jess.Main Jess, the Java Expert System Shell

Copyright (C) 2003 E.J. Friedman Hill and the Sandia Corporation Jess Version 6.1 4/9/2003

Jess>

 

Jes s P r ogr a m 실행

Command prompt 상에서 간단히 Jess program을 실행할 있다. Jess> (printout t "Hello, World!" crlf)

Hello, World!

Jess>

 

또한 스크립트 형태의 간단한 *.clp 파일을 작성하여 Jess 기동과 동시에 실행할 수도 있다. C:\Jess 61> java jess.Main hello.clp

Hello, World!

C:\Jess 61>

 

Jes s La ngua ge

기본적으로 Jess에서는 newline whitespace 무시(, 인용부호 내의 코드는 제외)되므로 코드 작성시 구분이 용 이하게 작성하면 된다.

 

Jess Symbol은 영문자, 숫자와 몇가지 특수문자($, *, ., =, +, /, <, >, _, ?,

#)로 구성이 되며 숫자로 시작되지 않는다. 또한 $, =, ?와 같은 특수문자로 시작되어서는 안된다.

Symbol ‘nil’ 자바에서 ‘null’ 같다. ‘nil’ 반드시 소문자이어야 한다. 반대로 ‘TRUE’, ‘FALSE’ 같은 Symbol 반드 시 대문자이어야 한다.

 

Jess 모든 Value들은 클래스 jess.Value 인스턴스이다. 이들은 한번 생성되면 변하지 않는다. jess.Value객체 자신이 가지고 있는 자료의 타입을 알고 있고 이것은 자신의 type()메소드를 통해 가능하다. jess.RU 클래스 는 이들 타입에 대한 상수들을 가지고 있다.

 

 

Number Type 3가지가 있다. RU.INTEGER, RU.FLOAT, RU.LONG이 그것이다.

String 인용부호로 감싸며 자바에서와 같이 인용부호 자체() \”’ 표현한다. 또한 \n 줄바꿈 기호이다. String type 마찬가지로 jess.Value 객체로 표현될 있으며 타입은 RU.STRING이다.

 

Jess에서 주석기호는 세미콜론(;)이다.

 

Jes s 의 간단한

Jess에서 가장 기초가 되는 구조는 list이다. 다음은 Jess에서 사용하는 list 예를 보여준다. (+ 3 2)

(a b c)

("Hello, World") ()

(1 2 3)

(deftemplate foo (slot bar))

 

list 첫번째 요소는 head라고 하며 head 인하여 list 고유한 특성을 지니게 된다. 각각의 list 괄호((, )) 구 분이 되어진다. 일부 사람들은 괄호 사용을 자바와 같이 쓰게 되는데 이는 잘못된 것이다.

(bind ?x (+

(* 20 3

)

(- 37 23

)

)

)

 

Jess Language 특성상 Readablity 증가시키기 위해서는 다음 예와 같이 작성해야 한다. (bind ?x (+

(* 20 3)

(- 37 23)))

 

함수호출

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

Jess prompt상에서 간단히 함수를 호출할 있다. Jess> (+ 2 2)

4

 

 

Jess 함수는 이와 같이 선행표기법을 쓴다. 다음과 같이 Jess함수는 함수 내에 포함되어 호출된 수도 있다. Jess> (+ (+ 2 3) (* 3 3))

14

 

 

가장 많이쓰는 함수는 printout 함수이다. 함수는 text 표준출력 또는 file 저장한다. Jess> (printout t "The answer is " 42 "!" crlf)

The answer is 42!

여기서 ‘t’는 콘솔창에 출력하라는 의미이고 ‘crlf’는 새로운 행을 출력하라는 뜻이다.

 

다른 유용한 함수는 ‘batch’이다. 함수는 ‘clp’확장자를 가진 file 읽어들여 실행하는 함수이다. Jess> (batch examples/hello.clp)

Hello, World!

 

Java에서 long형의 값을 Jess로 넣기 어렵다. 이때 쓰는 함수가 ‘long’함수이다. long형 값을 넣기 위해서는 다음과 같 이 String을 사용한다.

 

(bind ?aLongValue (long "123456789"))

변수

 

Jess에서의 변수는 Java 비슷하다. 그러나 type 지정되어 있지 않다. 이것은 Jess 변수 자체에서 어떤형태로이든 지 data type 가지고 있기 때문이다. Jess 변수는 signle symbol, number, string, list 등을 참조할 있다. Jess 변 수는 ‘?’ 시작된다.

변수를 따로 선언할 필요는 없다. 변수에 값을 할당하기 위해서는 bind함수를 쓰면 된다. Jess> (bind ?x "The value")

"The value"

그리고 변수의 값을 보기 위해서는 변수명을 타이핑하기만 하면 된다. Jess> (bind ?a (+ 2 2))

4

Jess> ?a

4

 

 

전역변수

Jess에서는 ‘reset’이라는 아주 중요한 명령어가 있는데 reset 하게되면 Jess ‘working memory’ 초기화된다. 일반변수인 경우 reset 의해서 사라지게 된다. 그러나 전역변수는 reset 의해서도 사라지지 않는다. 전역변수는 다음과 같이 ‘*’문자로 표현될 수 있다.

?*a*        ?*all-values*                   ?*counter*

그리고 전역변수는 ‘defgrobal’함수에 의해서 선언된다. 다음 예제가 도움이 것이다. Jess> (defglobal ?*x* = 3)

TRUE

Jess> ?*x*

3

Jess> (bind ?*x* 4)

4

Jess> ?*x*

4

Jess> (reset) ;; Jess will reset ?*x* to its initial value of 3 TRUE

Jess> ?*x*

3

Jess> (bind ?*x* 4)

4

Jess> (set-reset-globals nil)

FALSE

Jess> (reset) ;; This time, ?*x* will not be changed.

TRUE

Jess> ?*x*

4

 

 

[출처] asiadream | 구영탄 http://blog.naver.com/asiadream/6620163

 
 


 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
49 org.eclipse.ui.navigator Class CommonViewer 졸리운_곰 2019.07.04 398
48 MessageBox Example : Dialog « SWT JFace Eclipse « Java file 졸리운_곰 2019.06.16 362
47 Add Table Selection Listener and Get Selected TableItem : Table Event « SWT « Java Tutorial file 졸리운_곰 2019.06.16 372
46 Building and delivering a table editor with SWT/JFace file 졸리운_곰 2019.06.16 430
45 Demonstrates CellEditors : Table « SWT JFace Eclipse « Java file 졸리운_곰 2019.06.16 279
44 Demonstrates TableViewers : Table « SWT JFace Eclipse « Java file 졸리운_곰 2019.06.16 323
43 Eclipse RCP Tutorial: How to Add a Progress Bar file 졸리운_곰 2015.11.07 457
42 SWT Custom Widgets - Tutorial file 졸리운_곰 2015.08.23 379
41 Show a tool tip inside a rectangle : ToolTip « SWT « Java Tutorial file 졸리운_곰 2015.08.22 285
40 [SWT, Java] Tooltip example 졸리운_곰 2015.08.22 270
39 [SWT, Java], Button by Image, 이미지로 버튼 생성 졸리운_곰 2015.08.22 416
38 [SWT] Image Button 졸리운_곰 2015.08.22 277
37 [SWT] eventListener에서 부모 class (이벤트발생 클래스) 얻기 졸리운_곰 2015.08.16 340
36 [SWT] MessageBox Example file 졸리운_곰 2015.08.16 494
35 [SWT] How to create your own dialog classes file 졸리운_곰 2015.08.16 347
34 [SWT] Number Input Dialog file 졸리운_곰 2015.08.16 275
33 [SWT] Demonstrates a Canvas file 졸리운_곰 2015.08.12 268
32 SWT Control in One Example file 졸리운_곰 2015.08.10 403
31 SWT Tree With Multi columns file 졸리운_곰 2015.08.06 374
30 SWT Tree Composite 졸리운_곰 2015.08.06 289
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED