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

 
 


 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
35 [EMF] EMF Tutorial EMF 튜터리얼 file 졸리운_곰 2023.08.23 283
34 Eclipse RAP Tutorial for Beginners - Workbench Application (OLD) file 졸리운_곰 2021.01.30 323
33 Learn Eclipse GMF in 15 minutes file 졸리운_곰 2019.11.27 253
32 [Eclipse] GEF entry series (10, an implementation of the form) file 졸리운_곰 2019.11.25 212
31 GEF Programmer Guide 번역 졸리운_곰 2019.11.25 227
30 Learn Eclipse GMF in 15 minutes file 졸리운_곰 2019.11.20 224
29 RCP 에디터 정리 졸리운_곰 2019.11.20 333
28 다른 그림과 관련하여 GEF 편집기 레이아웃에서 그림의 위치 제한 조건을 동적으로 계산 Dynamically calculating the position constraints for a figure in a GEF editor layout in relation to another figure file 졸리운_곰 2019.11.20 277
27 RCP 등에서 .mf 파일로 다른 프로젝트 익스포트 포함시 라이브러리(메소드)를 찾지 못할 때, Eclipse RCP - cant resolve importing libraries in final build file 졸리운_곰 2019.10.15 410
26 ESE2006-EclipseModelingSymposium15_GMF.pdf file 졸리운_곰 2019.09.21 302
25 GMF_Creation_Review.pdf file 졸리운_곰 2019.09.21 366
24 Eclipse EMF and GMF Tutorial file 졸리운_곰 2019.09.21 222
23 GMF Tutorial/ko file 졸리운_곰 2019.09.20 347
22 Model Driven Architecture approach to domain of graphical editors file 졸리운_곰 2019.09.20 268
21 Single_Sourcing_RAP_RCP_en.pdf file 졸리운_곰 2019.05.15 311
20 Rich client platform 설명 및 배우기 참고 졸리운_곰 2019.05.15 309
19 Rich Ajax Platform, Part 1: 소개 file 졸리운_곰 2019.05.15 320
18 또 하나의 크로스 플랫폼: Eclipse RAP file 졸리운_곰 2019.05.15 319
17 Eclipse 4 RCP 튜토리얼(완료) file 졸리운_곰 2019.05.14 977
16 Updating UI in Eclipse RCP 졸리운_곰 2015.11.07 408
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED