프로그램의 디자인에 덴 타셔 널 시멘틱스 적용


30

저는 DS ( denotational semantics ) 에 대해 조금 읽었 으며 유형과 기능이 수학에 강력하고 명확하게 매핑되는 컴퓨터 프로그램을 설계하는 과정에 매우 흥미가 있습니다.

DS를 기반으로 한 프로그램 설계에 대해 자세히 설명하는 자료가 있습니까? 나는 그 주제에 대한 몇 가지 피상적 치료를 보았다.

나는 Haskell, Scala, Common Lisp 및 약간의 Scheme에 능통하므로 해당 언어를 사용하는 모든 리소스에 크게 감사드립니다.



2
Curry-Howard isomorphism은 이미 모른다면 키워드입니다.
pedrofurla

2
비슷한 생각을했습니다. 포인트, 강체 및 유체의 수치 시뮬레이션을 설계하려고했습니다. 이것은 ( github.com/takagi/SimulationDSL ) Haskell DSL에서 벡터 대수와 부분 방정식을 표현한 실험 중 하나입니다. Conal Elliott의 작품도 확인했습니다.

3
LtU를 확인해야합니다 . 아마도 거기에 좋은 오래된 토론이 있거나 적어도 귀하의 질문이 SO보다 더 적합 할 것입니다.

3
Samuel Kamin의 "Wadler의 예쁜 인쇄 조합기의 구현 지향적 의미론"을 읽어보십시오. 그것은 잘 알려진 실제 사례를 구현하는 것과 운영 및 덴탈 접근 방식을 비교하고 덴탈 접근 방식에 대한지지를 포함합니다.
stephen tetley

답변:


13

Denotational design (denotational semantics에 기반을 둔 프로그램 디자인)은 저의 주요 방법입니다. 몇 년 전 FRP에 관해 글을 쓰는 동안, 내가 한 일에 대해 훨씬 더 명확 해졌습니다. 푸시 풀 기능 반응 프로그래밍을 참조하십시오 . 패러다임과 다양한 예에 대한보다 명확한 설명은 유형 클래스 형태를 갖는 Dentational design을 참조하십시오 . 패턴을 의식하게되자 어디에서나 찾기 시작했습니다. 그것이 실패하면 추상화 유출이 있음을 알고 있습니다. 비공식적 인 초기 설명은 Luke Palmer의 블로그 게시물 Semantic Design을 참조하십시오 .

저는 항상 디자인 디자인의 응용에 관심이 있으므로, 여러분의 탐색에 대해 듣고 싶습니다.


훌륭한 자원에 감사드립니다. 질문에 답변 한 것으로 표시하기 전에 확인하겠습니다.
Tim Stewart

작업에 대한 링크를 제공해 주셔서 감사합니다! 내가 공부를 시작한 것은 두 번째입니다. 불행히도 conal.net 은 대답하지 않습니다. 그것을 얻을 수있는 다른 장소가 있습니까?
imz-Ivan Zakharyaschev


1
@ imz--IvanZakharyaschev 죄송합니다. 웹 서버가 다운되었습니다. 백업 지금. 바라건대 곧 마이그레이션 할 것이며 더 안정적 일 것입니다.
Conal

7

언어, 특히 도메인 특정 언어의 디자인은 의미의 정의로 시작해야한다고 주장하면서 언어 학적 의미 자체에 의의 적 의미론을 적용했습니다. 세부 사항에 관심이있는 경우 시맨틱 기반 DSL 설계시맨틱을 먼저 살펴보십시오 ! 언어 디자인 프로세스 재검토 .


훌륭한 자원에 감사드립니다. 질문에 답변 한 것으로 표시하기 전에 확인하겠습니다.
Tim Stewart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.