SlideShare ist ein Scribd-Unternehmen logo
1 von 14
프로그래밍 언어에 담긴 생각들 Programming & Language
저는… 기계공학과 졸업 방송통신대 영어영문학과 학생
Human Language Universal grammar
Programming Language 사람이 기계에게 일을 시키기 위한 말 설계자가 의도를 가지고 창조
Perl의 경우 There's more than one way to do it if (open(HANDLE, “input.txt”)) { 	… } else { 	die “Cannot open”; } open HANDLE, “input.txt” or die “Cannot open”;
부작용: Perl golf 문제: 주어진 텍스트 파일을 읽고 마지막 10줄을 출력하라 정답: 18글자 print+(<>)[~9..-1]
생각!= 언어
C struct member function structPseudoObj { int  prop; 	void (*setProp)(PseudoObj*, int); }; void setPropFunc(PseudoObj* c, int i) { c->prop = i: } PseudoObjmyObj; myObj.setProp = setPropFunc; myObj.setProp(&myObj, 1);
Variables in Scheme (define v 10) “변수 v의 값은 10” (X) “v는언제나 10을 돌려주는 함수” (O)
새로운 눈으로
Method args in Objective-C circle.setCenter(10, 10) // C++ [circle setCenterX:10 andY:10] // Objective-C 한 메소드에 두 개의 인자. 한 메시지에 두 개의 인자?
아이에게 가르친다면 [x a:b] x에게 한 개의 메시지를 한 번 전달 [[x a:b] c:d] x에게 한 번에 한 개의 메시지를 두 번 전달 한 번에 두 개의 메시지를 한꺼번에 전달하려면? 아이의 대답은 아마도… [x a:b c:d]
Refactoring [circle setCenterX:10 andY:10] 원의 중심을 바꾸는 것은 한 개의 소식. 그런데 표현은 두 개의 메시지라면? Introduce Parameter Object point.x = 10; point.y = 10; [circle setCenter:point]
Thanks

Weitere ähnliche Inhalte

Ähnlich wie Programming & language

문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의Kwangyoun Jung
 
You can read go code
You can read go codeYou can read go code
You can read go codeHomin Lee
 
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요Yongho Ha
 
H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요KTH
 
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호KTH, 케이티하이텔
 
프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장Ryan Park
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01seonhyung
 
병렬 프로그래밍
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍준혁 이
 
프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2dktm
 

Ähnlich wie Programming & language (11)

문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
HI-ARC PS 101
HI-ARC PS 101HI-ARC PS 101
HI-ARC PS 101
 
You can read go code
You can read go codeYou can read go code
You can read go code
 
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
 
H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요H3 2011 파이썬으로 클라우드 하고 싶어요
H3 2011 파이썬으로 클라우드 하고 싶어요
 
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
 
프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장프로그램은 왜 실패하는가 1장
프로그램은 왜 실패하는가 1장
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01
 
병렬 프로그래밍
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍
 
프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2
 
이산치5번
이산치5번이산치5번
이산치5번
 

Programming & language

  • 1. 프로그래밍 언어에 담긴 생각들 Programming & Language
  • 2. 저는… 기계공학과 졸업 방송통신대 영어영문학과 학생
  • 4. Programming Language 사람이 기계에게 일을 시키기 위한 말 설계자가 의도를 가지고 창조
  • 5. Perl의 경우 There's more than one way to do it if (open(HANDLE, “input.txt”)) { … } else { die “Cannot open”; } open HANDLE, “input.txt” or die “Cannot open”;
  • 6. 부작용: Perl golf 문제: 주어진 텍스트 파일을 읽고 마지막 10줄을 출력하라 정답: 18글자 print+(<>)[~9..-1]
  • 8. C struct member function structPseudoObj { int prop; void (*setProp)(PseudoObj*, int); }; void setPropFunc(PseudoObj* c, int i) { c->prop = i: } PseudoObjmyObj; myObj.setProp = setPropFunc; myObj.setProp(&myObj, 1);
  • 9. Variables in Scheme (define v 10) “변수 v의 값은 10” (X) “v는언제나 10을 돌려주는 함수” (O)
  • 11. Method args in Objective-C circle.setCenter(10, 10) // C++ [circle setCenterX:10 andY:10] // Objective-C 한 메소드에 두 개의 인자. 한 메시지에 두 개의 인자?
  • 12. 아이에게 가르친다면 [x a:b] x에게 한 개의 메시지를 한 번 전달 [[x a:b] c:d] x에게 한 번에 한 개의 메시지를 두 번 전달 한 번에 두 개의 메시지를 한꺼번에 전달하려면? 아이의 대답은 아마도… [x a:b c:d]
  • 13. Refactoring [circle setCenterX:10 andY:10] 원의 중심을 바꾸는 것은 한 개의 소식. 그런데 표현은 두 개의 메시지라면? Introduce Parameter Object point.x = 10; point.y = 10; [circle setCenter:point]