2010-04-18 5 views
2

오늘 나는 다른 친구와 이야기를 나눈다. 그는 논리 프로그래밍 기술을 가지고 있다고 말했다. 그래서 나는 그것에 대해 매우 궁금하다.논리 프로그래밍이란 무엇입니까? 다른 사람과 다른 점

+2

왜 물어 보지 않으시겠습니까? –

+5

모든 프로그래밍은 논리입니다. 너의 친구는 굉장한 척하고있다. –

+0

호기심이 좋습니다. –

답변

8

wikipedia 엔트리가 잘 설명되어 있습니다. 모든 프로그래밍에서 로직을 사용하기 때문에 표면적으로 중복 용어 인 것처럼 보입니다. 실제로는 "함수 프로그래밍"과 "객체 지향"과 같은 잘 정의 된 패러다임을 의미합니다. 프로그램 작성". 구체적

논리 프로그래밍은, 좁은 의미로 되는 것이 더 일반적이다 이해 선언적 및 절차 표현 언어 모두 같은 논리의 사용이다. 그것은 뒤로 추론 정리 - 증명이 의미의 형태로 선언적 문장에 적용한다는 사실에 을 기반으로합니다

If B1 and … and Bn then H 

취급을 목표 감소 절차와 의미 :

to show/solve H, show/solve B1 and … and Bn. 

언어 Prolog (in so 나 변형 또는 다른) 아마 아직도 대중적인 논리 프로그래밍 언어이다.

-2

"나는 if/then/else 문장을 프로그래밍 할 수있다"는 의미로 사용하겠다. 또는 다른 말로 표현하자면, 나는 "어떤 실제 기술로도 프로그래밍 할 수 없다"는 의미로 사용하기로했다. 나는 감동하지 않을 것이다.

+1

간단한 Google 검색을 사용하면 가정이 거짓으로 표시됩니다. http://www.google.com/search?q = logic + programming – John

+0

방금 ​​검색의 첫 번째 링크를 클릭했는데 내 생각을 확인하는 것 같습니다. :// 나는 꽤 많은 개발자들이 몇몇 조건문을 함께 털어 낼 수 있어야한다고 말하고 싶다. Ands, Ors, Nots, 그들은 모두 아주 기초적이고 완벽하게 기술에 의존하지 않습니다. 이 구글 검색이 거짓이라고 내 가정을 보여주고 있다고 생각한다면 정확히 내 가정을 가정하고있는 것입니까? 나는 지난 몇 년 동안 많은 수의 사람들과 인터뷰를 해봤습니다. 그리고 나는 그들에게 "당신은 어떤 종류의 프로그래머입니까?" 그들의 대답은 "논리 프로그래머"였습니다. 인터뷰는 끝났을 것입니다. – Jaxidian

+0

좀 더 구체적인 방식으로이 마지막 설명을 다시 말씀 드리겠습니다. 개발자는 로직 프로그래머와 잘 어울려야합니다 - 이것은 보통 최소한의 요구 사항으로 간주됩니다. 개발자는 논리에 문제가 없어야합니다. – Jaxidian

1

나는 보통 프롤로그를 사용한다는 것을 이해하고 싶습니다. Prolog는 술어 W 진리 값을 정의 할 수 있도록합니다. 프롤 로그 인터프리터는 표준 논리 규칙을 사용하여 추가 "진실"을 파생시킬 수 있습니다. 예를 들어, 다음의 각 행은 첫 번째와 두 번째 매개 변수 사이에 father_childmother_children 관계를 설정합니다 (언급 된 사람들은 Simpsons 출신 임).

member(X, [X|_]). 
member(X, [_|T]) :- member(X,T). 

mother_children(marge, [bart, lisa, maggie]). 
mother_children(mona, [homer, jay]). 

mother_child(X, Y) :- mother_children(X, C), member(Y, C). 

father_child(homer, bart). 
father_child(homer, lisa). 
father_child(homer, maggie). 
father_child(abe, homer). 
father_child(abe, herb). 
father_child(abe, abbie). 

sibling(X, Y) :- parent_child(Z, X), parent_child(Z, Y). 

parent_child(X, Y) :- father_child(X, Y). 
parent_child(X, Y) :- mother_child(X, Y). 

당신이 프롤로그 인터프리터에이 프로그램을 발사 한 다음 sibling(X,Y)을 요구하는 경우에

, 그것은 당신에게 존재 형제의 모든 쌍을 반환합니다. 흥미로운 점은 바트가 리사에게 형제라고 말하는 것은 결코 명백하지 않다는 것입니다. 우리는 아버지와 어머니의 관계를 정의 할뿐 더 규칙을 정의함으로써 일반적인 규칙을 사용하여 어떤 이름을 sibling 규칙으로 채 웁니다.

프롤로그는 80 년대, 다양한 AI 시스템 등에서 더 많이 보급되었습니다. 요즘은 유행에서 벗어났습니다 (대학에서 알지 못했을 때, 여전히 뜨거운 똥입니다).

관련 문제