블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
02-07 09:42
 

달력

« » 2025.2
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
 

최근에 올라온 글

최근에 달린 댓글


시끄러운 cpu 팬때문에 잠들어 계셨던 노트북을 학교로 가지고 왔습니다.

윈도우를 재설치하고 OSX를 설치하기 위해서 D드라이브를 백업한 후, D드라이브를 주 파티션으로 잡으려 했으나 논리 파티션으로 E와 같이 묶여 있어서 E드라이브도 백업 중에 있네욤;;;

과연 OSX를 설치할 수 있을지 ㅋㅋㅋㅋ


@_@...


Posted by 자수씨
, |
언제쯤 포스팅할 시간적 여유가 생길까욤...

이제 슬슬 중간고사가 끝나가기는 하는데~~~~

먼가 특단의 조치가 필요한 시점!!!!!!



Posted by 자수씨
, |


교수님께서 램을 사주셨습니다. XP 에서는 램디스크, OSX 에서는 그냥 사용하고 있습니다.

음화화화화화~



Posted by 자수씨
, |

수업 시간에 아주 흥미로운 이야기를 들었습니다.
자바에서 스트링 비교에서 == 연산자로 비교를 할 수 있다고 하시더군요~~



실행결과
true
false


평소에 배워오던 스트링 비교에서는 equals() 메소드를 써야한다고 배웠는데...

일반적으로 new String() 을 하게되면 Heap 영역에 독자적인 메모리 공간을 갖게 되는데,
그냥 "..." 로 스트링을 만들 경우에는 Heap 영역에 스트링 풀에서 관리를 한다고 합니다.
같은 스트링은 한 개만 저장한다고 하네요~

자바를 시작한지 6년이 지났는데... 정말 충격적인 사실이였습니다. ㅋㅋㅋㅋ


Posted by 자수씨
, |

이제 실행해볼 환경도 마련했으니 간단하게 프로그램을 작성해 보겠습니다.

1:  father(paul, tom).   father(alex, tom).
2:  mother(paul, alice). mother(alex, alice).
3:
4:  parent(Person, Parent) :-
5:    father(Person, Parent);
6:    mother(Person, Parent).
7:  
8:  sibling(Person, Sibling) :-
9:    Person \== Sibling,
10:   father(Person, Father), father(Sibling, Father),
11:   mother(Person, Mother), mother(Sibling, Mother).


1~2 라인에서는 facts 를 정의하였습니다.
1:  father(paul, tom).   father(alex, tom).   % paul 의 아버지는 tom, alex 의 아버지는 tom.
2:  mother(paul, alice). mother(alex, alice). % paul 의 어머니는 alice, alex 의 어머니는 alice.

4~6 라인에서는 부모 - parent/2 라는 룰을 정의하였습니다.
('/' 뒤에 숫자는 인자의 개수를 말합니다. 여기서는 parent 의 rule 의 인자는 2개라는 뜻)
4:  parent(Person, Parent) :-
5:    father(Person, Parent);
6:    mother(Person, Parent).
':-' 라는 연산자는 rule 을 정의할 때 사용하며 세미콜론(;) 은 or 연산을 의미합니다.
위의 내용은 parent/2 라는 룰은 father/2 나 mother/2 의 facts 를 확인한다는 뜻 입니다.

8 ~ 11 라인은 형제 - sibling/2 라는 룰을 정의하였습니다.
8:  sibling(Person, Sibling) :-
9:    Person \== Sibling,
10:   father(Person, Father), father(Sibling, Father),
11:   mother(Person, Mother), mother(Sibling, Mother).
형제를 확인할 경우 본인이 아닌 것을 확인해야 하므로 9 라인의 '\==' 연산자를 통하여 같지 않음을 확인합니다.
콤마(,)의 경우에는 and 연산을 의미합니다.
위의 내용은 인자들이 서로 같지 않고 아버지와 어머니가 같은 경우의 Person 과 Sibling 을 확인할 수 있는 rule 입니다.



이제 맞게 프로그래밍이 되었는지 질의를 해보겠습니다.
?- parent(paul, WHO).
WHO = tom ;
WHO = alice.
paul 의 parent 를 확인하는 질의입니다. 명령을 실행하면 WHO = tom 이라는 결과가 나오는데 Enter 를 치게 되면
다음 대상에 대한 출력을 하게됩니다.

sibling(paul, alex). sibling(paul, paul). 과 같은 질의를 해보면 올바르게(?) 프로그래밍이 된 것을 확인할 수 있을 것입니다.


Prolog 작성시 주의사항
facts
작성시 인자의 첫 글자는 소문자로 작성을 합니다. 첫 글자가 대문자일 경우 Singleton variable 로 인식을 하게됩니다.
rules 작성시에 rules 의 이름의 첫글자는 소문자로 작성하며, 인자의 첫글자는 대문자로 작성합니다.
(해보시면 알겠지만 이름의 첫글자를 대문자로 하게되면 컴파일 오류가 나며, 인자를 소문자로 할 경우 올바른 결과를 확인할 수 없습니다.)




이정도만 알면 간단한 Prolog 프로그래밍을 할 수 있겠죠???



Posted by 자수씨
, |

인공지능 수업시간에 Prolog 라는 언어를 배웠습니다.

대충 어떤 식으로 돌아가는 것에 대해서는 알겠지만 처음 다뤄보는 언어라서 버벅거리다가 이제야 이해를 하고 정리 들어갑니다.


위키피디아에서는 Prolog 를 다음과 같이 설명합니다.
Prolog is a logic programming language. It is a general purpose language often associated with artificial intelligence and computational linguistics. It has a purely logical subset, called "pure Prolog", as well as a number of extralogical features.
[출처] 위키피디아 - Prolog  http://en.wikipedia.org/wiki/Prolog

논리 프로그래밍 언어로 인공지능과 컴퓨터언어학과 연관이 있다고 하네요... (험험... 짧은 영어 실력이...)



실제로 Prolog 로 프로그래밍을 할 수 있도록 개발 툴을 다운로드 받습니다.
SWI-Prolog's home : http://www.swi-prolog.org/

좌측에 있는 Download 메뉴를 클릭합니다.



Stable release 를 선택합니다. (안정적으로 릴리즈 된 것을 사용해야겠죠~)



저는 Window XP 를 쓰기 때문에 아래의 링크로 설치파일을 받았습니다.



설치하는데에는 무리가 없을 것 같으므로 스킵하고 설치된 SWI-Prolog 를 실행하면 아래와 같은 화면이 나오게 됩니다.



그냥 SWI-Prolog 만 써도 프로그래밍은 가능하지만 조금 불편한 점이 많습니다.
그래서 Prolog 관련 IDE 를 다운로드 받습니다.
SWI-Prolog-Editor Download Page : http://lernen.bildung.hessen.de/informatik/swiprolog/indexe.htm

다운로드 페이지로 이동하여 아래의 링크를 클릭합니다. setup.zip 의 압축을 풀어서 설치를 합니다.



설치를 완료하면 아래와 같은 바로가기가 생기게 됩니다. 실행을 해봐야겠죠?



pl 파일이 위쪽에 있고 아래쪽에는 실행을 시켜볼 수 있는 인터프리터(?) 가  아래쪽에 있습니다.



간단하게 Prolog 프로그래밍을 작성하고 F9 를 누르면 (처음 누르게 되면 파일 저장경로를 묻습니다.)
컴파일이 되고 아래쪽에서 명령을 실행하여 확인을 해볼 수 있습니다.



역시 IDE 가 있으니 좀 할만하네요~ ㅋㅋㅋ



Posted by 자수씨
, |

블로그 임시 휴업

Brand New! / 2009. 3. 30. 23:12

쉽니다...


Posted by 자수씨
, |

연구실에서 운동도 할겸 연구비로 족구공을 구입하였습니다.

연구실 대표모델 광청이입니다.
컷팅전에 한장~



최고급 족구공입니다.



품질보증서입니다. 우수한 제품만을 공급 ㅋㅋㅋㅋ



헤딩을 해도 안아픕니다.



이제 주말에 족구 고고싱~~


Posted by 자수씨
, |

초고속정보통신망 수업시간에 AMAN2002 를 이용하여 네트워크 레이어의 헤더들을 분석하는 프로그램을 만들고 있습니다.
하지만 책에 나온대로 하게되면 오류 투성이...

5장 IPViewer 에서 책에 나오지 않는 부분을 정리하였습니다.






Posted by 자수씨
, |

4학년이라 이론 수업보다는 실습 수업이 많습니다.
학교에서 회사일을 하느라 교수님이 앞에 계신다는 것을 이용해서 딴짓을 많이 하게 됩니다;;;

불연듯 실습실 뒤쪽에 거울이 있다면 이라는 생각이 번뜩 들면서 후덜덜 하네요;;;

ㄷㄷㄷ................




Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백