1P by neo 4달전 | favorite | 댓글 1개
  • AWK 창시자 Dr. Brian Kernighan과의 짧은 인터뷰

    • Dr. Brian Kernighan 소개

      • Dr. Brian Kernighan은 캐나다 출신의 컴퓨터 과학자로, Bell Labs에서 UNIX 개발에 기여함
      • Dennis Richie와 함께 C 프로그래밍 언어에 관한 기본서인 "The C Programming Language"를 공동 저술함
      • 2000년부터 Princeton University에서 다음 세대 프로그래머를 양성하고 있음
      • 최초의 "Hello World!" 프로그램을 작성한 인물로 유명함
    • AWK의 새로운 아이디어

      • AWK의 주요 아이디어는 연관 배열(associative arrays)임
      • 당시에는 새로운 개념이었으나, 현재는 대부분의 언어에서 라이브러리 함수(hashmaps in Java or C++)나 언어 자체(dictionaries in Perl and Python)로 사용됨
      • 연관 배열은 매우 강력한 구조로, 다양한 데이터 구조를 시뮬레이션하는 데 사용될 수 있음
      • 패턴-액션 패러다임도 당시에는 널리 사용되지 않았으나, 특정 계산을 조직하는 효과적인 방법임
    • 프로그래밍 언어를 만들 때 참조한 자료

      • Dr. Kernighan: "없음"
      • 1970년대 당시에는 새로운 특수 목적의 언어들이 많았고, 참조할 만한 선행 자료가 거의 없었음
      • Yacc는 문법을 쉽게 만들고 실험할 수 있게 해주는 중요한 도구였음
      • Lex는 어휘 수준에서 동일한 역할을 하여 많은 지루한 코드를 규칙 세트로 대체함
      • Lex와 Yacc는 패턴-액션 언어의 예시로, 서로 긍정적인 순환을 이루었음
    • 프로그래밍 언어 설계에 관심 있는 젊은이들에게 조언

      • 작은 특수 목적의 언어를 설계하고 구현해보라고 조언함
      • 이는 매우 재미있고 유용하며, Rust나 C++의 대체 언어를 만드는 것보다 훨씬 쉬움
      • 자동화할 수 있는 작업을 찾아서 간단한 컴파일러와 런타임을 만들라고 권장함
      • Jon Bentley가 오래전에 쓴 관련 기사가 여전히 유효함
    • 이미지 출처

      • Wikimedia Commons

GN⁺의 정리

  • Dr. Brian Kernighan은 UNIX와 C 언어 개발에 기여한 중요한 인물로, 연관 배열과 패턴-액션 패러다임을 도입한 AWK 언어의 창시자임
  • 연관 배열은 현재 대부분의 프로그래밍 언어에서 사용되는 강력한 데이터 구조임
  • 젊은 프로그래머들에게는 작은 특수 목적의 언어를 설계하고 구현해보는 것이 유익함
  • Yacc와 Lex는 문법과 어휘 분석을 쉽게 해주는 도구로, 패턴-액션 언어의 좋은 예시임
Hacker News 의견
  • Brian Kernighan은 2000년에 Princeton의 CS 부서에 합류했지만, 1993년 Bell Labs Research에 있을 때 이미 한 수업을 가르쳤음
  • 한 학생이 386sx 노트북(초기 Linux 실행)을 수업에 가져와 awk에 대한 질문에 답을 제공했음. Brian은 비교적 일찍 Linux에 노출되었음
  • 1994년 가을에 AT&T의 무료 전화 디렉토리를 인터넷에 올린 것에 대한 Brian의 글이 있음
  • Lex Fridman이 Brian Kernighan과 1시간 반 인터뷰를 했음
  • Aho와 Weinberger와 함께한 더 포괄적인 인터뷰가 "Masterminds of Programming" 책에 포함되어 있음. 강력히 추천함
  • 예전에 누군가 Usenet 서명에 "perl은 마가린, awk는 버터"라고 적었음. Perl을 발견한 후 awk를 덜 사용하게 되었음
  • "The Unix Programming Environment" 책을 읽고 있음. awk는 현재 인기 있는 언어(js, lua, python, perl, tcl)와 유사한 부분이 많음
  • 1979년 7번째 에디션 Unix 버전의 awk는 2680줄의 소스 코드로 구성되어 있고, 실행 파일은 46k로 pdp-11의 64k 주소 공간에서 실행되었음. 사용자 정의 함수가 없었음
  • bc는 사용자 정의 함수가 있었음
  • 80년대 호주 Unix 컨퍼런스에서 Dr Kernighan이 서명한 K&R 책을 소유하고 있음. 소중한 소장품임
  • 그 책과 "The Practice of Programming" 책, Byte 잡지 등이 1980년대의 "Stack Overflow" 역할을 했음
  • 연관 배열을 "newish"라고 언급한 것이 흥미로움. Lisp에서는 거의 20년 전에 등장했음
  • regex에서 lex, yacc, awk로 이어지는 개발 순서가 매우 설득력 있게 느껴짐
  • 매우 간결함
  • Awk 창시자: 재미있음