<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
  <title type="html">김 용묵의 절대공간 - 블로그: 서울대-컴퓨터공학과-이-광근-교수에 달린 최근 댓글/트랙백 목록</title>
  <id>http://moogi.new21.org/tc/</id>
  <link rel="alternate" type="text/html" hreflang="ko" href="http://moogi.new21.org/tc/" />
  <subtitle type="html">철도를 명절 때에나 떠오르는 4대 교통수단 중 하나로만 아는 것은, 예수님을 사대성인· 성인군자 중 하나로만 아는 것과 같다.</subtitle>
  <updated>2021-08-30T10:22:52+09:00</updated>
  <generator>Textcube 1.7.8 : Con moto</generator>
  <entry>
    <title type="html">주의사신님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment2989" />
    <author>
      <name>(주의사신)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment2989</id>
    <published>2012-02-29T20:08:21+09:00</published>
    <summary type="html">1. 무척 어려운 연구를 하시는군요. 제 개인적인 지론은 &amp;quot;버그는 사람의 잘못된 습관에서 생긴다&amp;quot;인데, 그 습관까지 어느 정도 고쳐줄 수 있는 연구라니... 대단합니다.


2. 한글 관련 글 읽어 보았는데, 정말 멋진 글이네요. 읽을 수 없는 고대 문서들... 좋은 것도 많다고 듣기는 했는데... 가끔 나옵니다.(우리 역사에 어떤 수학자가 있었는데, 이러이러한 연구를 했다.) 수능에도 한 번 그 수학자의 연구를 소재로 했던 문제가 나왔던 기억이 납니다. 


3. Programming Language Pragmatics, Dragon Book으로 유명한 Comiler 책. 어렵기로 유명한 책들이 생각나게 하는 글이었습니다.</summary>
  </entry>
  <entry>
    <title type="html">사무엘님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment2990" />
    <author>
      <name>(사무엘)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment2990</id>
    <published>2012-03-01T07:54:31+09:00</published>
    <summary type="html">1, 2 분야 둘 모두를 살펴봐도 가히 엄청난 분이 아닐 수 없습니다. 뼛속까지 교수 타입.

제가 나중에 들은 한 태숙 교수의 PL 수업 때 사용된 교재가 Programming Language Pragmatics입니다. 지금 카이스트 PL은 교수도, 교재도 또 다른 걸로 바뀌어 있죠.</summary>
  </entry>
  <entry>
    <title type="html">주의사신님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment2993" />
    <author>
      <name>(주의사신)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment2993</id>
    <published>2012-03-01T09:13:26+09:00</published>
    <summary type="html">MIT에서 컴공 공부하러 들어오는 천재들을 울리는 과목의 교재 중에 &amp;quot;Structure and Interpretation of Computer Programs&amp;quot;라는 책이 있습니다. SICP라는 약자로 유명한데, LISP 컴파일러 만드는 것으로 끝난다고 하더군요.

아직 안 읽어 봤는데, 얼마나 어려운 책이길래 그 친구들이 힘들어할까 하는 생각이 드는 조금 궁금한 생각이 들게 하는 책입니다.

Scheme과 lambda가 중간에 나오길래 몇 자 추가해서 적어 보았습니다.</summary>
  </entry>
  <entry>
    <title type="html">사무엘님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment2994" />
    <author>
      <name>(사무엘)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment2994</id>
    <published>2012-03-01T14:18:23+09:00</published>
    <summary type="html">아, 그 책도 유명하죠. 카이스트에서 PP(프로그래밍의 이해) 과목에서 쓰고 있는 교재입니다.</summary>
  </entry>
  <entry>
    <title type="html">김재주님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment2996" />
    <author>
      <name>(김재주)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment2996</id>
    <published>2012-03-04T19:58:14+09:00</published>
    <summary type="html">이른바 함수형 언어들 중에서 가장 메이저라 할만한 언어는 lisp겠죠. 그 다음으로 ML류 언어들이 있을텐데 이 중에 OCaml은 실행 코드 결과물의 속도가 같은 알고리즘을 이용해서 C로 구현한 것과 동등한 수준이라고 알려져 있죠 ㅎㄷㄷ... C언어로 한 구현이 허접하다거나 한 것도 아닌데.. 어떻게 그게 가능한지 참 신기합니다.</summary>
  </entry>
  <entry>
    <title type="html">사무엘님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment2998" />
    <author>
      <name>(사무엘)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment2998</id>
    <published>2012-03-04T22:54:15+09:00</published>
    <summary type="html">보충 설명에 감사합니다.
괄호로 둘러싸서 연산자를 prefix 형태로 표기하는 문법은 LISP가 원조이며, Scheme 역시 그것의 변종 방언이죠.
OCaml은 재귀호출 코드를 내부적으로 비재귀 형태로 바꿔서 실행는 등, 최적화가 굉장히 잘 되어 있나 봅니다. (재귀호출을 비재귀로 바꾸는 원론적인 테크닉도 아마 이 광근 교수 PL 수업의 challenging 과제에서 봤던 것 같습니다.)</summary>
  </entry>
  <entry>
    <title type="html">Lyn님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment3000" />
    <author>
      <name>(Lyn)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment3000</id>
    <published>2012-03-05T13:48:07+09:00</published>
    <summary type="html">뭘 어떻게하면 저렇게 머리가 좋아지는거야 ㅜ.ㅜ

OCaml의 성능의 비결은 stack에 의존하지 않는(함수 호출 등) 구현방식 때문이라고 하더군요. Fortran(Matlab 말고) 이 빠른것과 비슷한 이유라 할 수 있겠네요.</summary>
  </entry>
  <entry>
    <title type="html">사무엘님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment3002" />
    <author>
      <name>(사무엘)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment3002</id>
    <published>2012-03-05T18:03:38+09:00</published>
    <summary type="html">저도 저런 데에 머리가 빨리빨리 잘 돌아가는 사람이 참 부럽습니다. ㅜㅜ
포트란이야, 포인터 없이 단순한 문법 덕분에 오히려 컴파일러 관점에서 복잡도 파악과 병렬화가 더 유리한 면모가 있다고 저 역시 어렴풋이 알고 있습니다.</summary>
  </entry>
  <entry>
    <title type="html">김재주님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/648#comment3017" />
    <author>
      <name>(김재주)</name>
    </author>
    <id>http://moogi.new21.org/tc/648#comment3017</id>
    <published>2012-03-10T12:50:19+09:00</published>
    <summary type="html">뭐 근데 사실 OCaml도 구현상 속도에 유리한 코딩방식이 어떤 것인지를 알아야만 그 성능을 100% 발휘할 수 있다는 점은 똑같습니다. 실제 기계의 low-level 구현과는 전혀 관계없이 완전히 수학적인 언어로 프로그램을 기술하려는 것이 함수형 언어인데, 현실에서 높은 성능을 끌어내려면 결국은 컴퓨터 내부 구조에 대해서도 잘 알아야만 한다는 점이 함수형 언어들의 딜레마가 아닌가 싶습니다.


참고로 재귀호출 코드를 비재귀로 바꾸는 테크닉은 웬만한 C나 C++ 구현에도 다 있습니다. 그리고 꼬리재귀라고 하는 테크닉이 있는데, 예를 들어서 다음 두 함수의 하는 일은 똑같지만 컴파일러에 따라서 생성되는 코드가 전혀 다를 수 있습니다.

int factorial(int n){
    return n &amp;gt; 1 ? factorial(n-1) * n : n;
}

int factorial_tail(int n, int ret){
    return n &amp;gt; 1 ? factorial_tail(n - 1, ret * n) : ret; // 비재귀 형태로 변환됨
}

다만 후자는 호출시에 ret에는 1을 넣어줘야겠죠.</summary>
  </entry>
</feed>
