E D R , A S I H C RSS

Programming Language Class

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ μˆ˜μ—…
----

μˆ˜μ—… 정보

ꡐ수: κΉ€μ„±μ‘° κ΅μˆ˜λ‹˜ μˆ˜μ—…ν™ˆνŽ˜μ΄μ§€

[ISBN-0201752956]

μˆ˜μ—…λ‚΄μš©: ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ κ΅¬ν˜„ & κ΅¬μ„±μš”μ†Œμ— λŒ€ν•œ μ „λ°˜μ  이해.

참고자료

μΆ”μ²œ μ„œμ 

  • Programming Language Pragmatics by Michael L. Scott : μ΄μ œκΉŒμ§€ λ‚˜μ˜¨ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘  μ„œμ  쀑 λͺ‡ 손가락 μ•ˆμ— κΌ½νžˆλŠ” λͺ…μ €.
  • Programming Language Processors In Java : Compilers and Interpreters by David A. Watt & Deryck F. Brown
----
μˆ˜μ—…μ˜ 의λΈ

비둝 "μ•„λŠ” μ–Έμ–΄"칸에 λŒ€μ—¬μ„ μ΄μƒμ˜ μ–Έμ–΄λΌ μ„μ„이 적어넣을 수 μžˆμ§€λ§Œ, 컴퓨터 κ³΅ν•™κ³ΌλΌ λ‹€λ‹ˆλ©΄μ„œ "정말 μ•„λŠ”" μ–Έμ–΄λŠ” ν•­κ°„μ—μ„œ ν˜„μž¬ μœ ν–‰ν•˜λŠ” μ–Έμ–΄ ν•˜λ‚˜ λ‘˜ 정도이닀. 일단 μ£Όλ³€ 여건이 λ‹€λ₯Έ μ–Έμ–΄λΌ κ³΅λΆ€ν•  μ—¬μœ λΌ ν—ˆλ½ν•˜μ§€ μ•Šκ³ , 이걸 격렀, κ³ λ¬΄ν•˜λŠ” μ‚¬λžŒμ΄ 아무도 μ—†λ‹€λŠ” 것이 λ¬Έμ œλ‹€. λ„ˆλ‚˜ ν•  것 없이, κ΅κ³Όκ³Όμ •μ—μ„œ Cμ–Έμ–΄λΌ μžλ°”λ‘œ λŒ€μ²΄ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œ "우리 학ꡐ μ „μ‚°ν•™κ³ΌλŠ” λΈλž˜μ§€ν–₯적이고 μ•žμ„œ λ‚˜κ°€λŠ”..."μ΄λΌλŠ” μ„ μ „ λ¬Έκ΅¬λΌ λ‚΄κ±°λŠ” 것을 보면 정말 μ•ˆνƒ€κΉŒμšΈ 뿐이닀. μ™œ MITμ—μ„œλŠ” 제일 처음 κ°€λ₯΄μΉ˜λŠ” μ–Έμ–΄λ‘œ Scheme을 λͺ‡λ…„μ§Έ κ³ μˆ˜ν•˜κ³  μžˆμ„κΉŒ.

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λΌ λ°°μš°λŠ” 것은 사고와 ν‘œν˜„μ˜ 방식을 ν•˜λ‚˜ 더 λ°°μš°λŠ” 것이닀. λ”°λΌμ„œ, μ„사 ν•΄λ‹Ή μ–Έμ–΄λ‘œ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  κΈ°νšŒκ°€ λ³„λ‘œ μ—†λ‹€κ³  해도, νŒμ΄ν•œ μ–Έμ–΄λΌ ν•˜λ‚˜ 더 λ°°μš°λŠ” 것은 κ°€μΉ˜μžˆλŠ” 일이닀. λ™μ‹œμ— 무슨 μ–Έμ–΄λΌ λ°°μš°λŠλƒ, μ–΄λ–€ μ‹ νƒμŠ€λΌ μ΅νžˆλŠλƒλŠ” 것은 크게 μ€‘μš”ν•˜μ§€ μ•Šλ‹€. μ–Έμ–΄λŠ” λ³€ν•˜κ³  μ‚¬λ©Έν•˜κ³  μ‹ μƒν•˜λ©°, μœ ν–‰λ„ 바뀐닀. 그보닀 그런 μ–Έμ–΄ 저변에 κΉ”λ €μžˆλŠ” λ‹€μ–‘ν•œ νŒ¨λŸ¬λ‹€μž„μ„ μ ‘ν•˜κ³  μΆ©λΆ„νžˆ μ΄ν•΄ν•˜κ³  μ μš©ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€. ν•˜μ§€λ§Œ 이게 κ°€λŠ₯ν•˜λ €λ©΄ ꡬ체적인 μ–Έμ–΄λΌλŠ” 채널을 ν†΅ν•˜μ§€ μ•Šμ„ μˆ˜κ°€ μ—†λ‹€.

그러λ€λ‘œ, 이런 ProgrammingLanguageClassκ°€ μ€‘μš”ν•˜λ‹€. 이 μˆ˜μ—…μ„ μ œν•˜λ©΄ λ‹€λ₯Έ νŒ¨λŸ¬λ‹€μž„μ˜ λ‹€μ–‘ν•œ μ–Έμ–΄λΌ μ ‘ν•  κΈ°νšŒκ°€ 거의 μ „λ¬΄ν•˜λ‹€. μžμ‹ μ˜ λͺ¨κ΅­μ–΄κ°€ μžλ°”μ˜€λ‹€λ©΄, LISP와 Prolog, ICON, Smalltalk 등을 μ ‘ν•˜κ³  λ‚˜μ„œ λͺ‡ 차원 넓어진 μžμ‹ μ˜ μžλ°”ν‘Έ(Kungfu의 λ³€ν™”ν˜•)λΌ λ°œκ²¬ν•  수 μžˆμ„ 것이며, μžλ°”μ˜ μŒμ–‘μ„ μ‚΄ν”Όκ³  λ¬Έμ œμ μ„ μš°νšŒν•˜κ±°λ‚˜ μˆ˜μ •ν•˜λŠ” μ§„μ •ν•œ λ„κ΅¬μ£Όμ˜μ˜ 기쁨을 λ§Œλ½ν•  수 μžˆμ„ 것이닀. ν•œκ°€μ§€ μ–Έμ–΄μ˜ λ…Έμ˜ˆκ°€ λ˜μ§€ μ•ŠλŠ” 길은 λ‹€μ–‘ν•œ μ–Έμ–΄λΌ λΉ„κ΅ νŒλ‹¨, ν˜„λͺ…ν•˜κ³  선택적인 μ‚¬μš©μ„ ν•  λŠ₯λ ₯을 κΈ°λ₯΄λŠ” 법 μ™Έμ—” μ—†λ‹€. --κΉ€μ°½μ€

κ°€μž₯ 많이 μ“°μ΄λŠ” μ–Έμ–΄λ§Œ 배우면 λ˜μ§€ μ•ŠλŠ”κ°€

κΌ­ κ·Έλ ‡μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€μ–‘ν•œ μ–Έμ–΄λΌ λ°°μš°κ³ , 특히 ν›Œλ₯­νžˆ λ””μžμΈλœ μ–Έμ–΄(각 μš”μ†Œλ“€μ΄ μ„œλ‘œ μƒμΆ©ν•˜μ§€ μ•Šκ³  유기적으둜 μ‘°ν™”λ˜μ–΄ ν•˜λ‚˜μ˜ κ±΄κ°•ν•œ μƒνƒœκ³„λΌ μ΄λ£¨λŠ”)λΌ μΆ©λΆ„νžˆ μ ‘ν•˜κ²Œ 되면, 아무리 λ¬Έμ œμžˆλŠ” μ–Έμ–΄λΌ μ“°κ²Œ λ˜λ”λΌλ„ "선택적"인 μ‚¬μš©μ΄ κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.

"Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he or she will be in a far better position to recognize their bad features as he or she encounters them."

-- C. H. Lindsey, History of Algol 68. ACM SIGPLAN Notices, 28(3):126, March 1993.
----
개인적으둜 학기쀑 기얡에 λ‚¨λŠ” 뢀뢄은 주둜 λ ˆν¬νŠΈλ“€μ— μ˜ν•΄ μ΄λ£¨μ–΄μ‘Œλ‹€. Recursive Descending Parser λ§Œλ“€μ—ˆλ˜κ±°λž‘ μ–Έμ–΄ ν‰κ°€μ„œ (C++, Java, Visual Basic) μž‘μ„±ν•˜λŠ”κ²ƒ. μˆ˜μ—…μ‹œκ°„λ•ŒλŠ” μ†”μ§νžˆ λ„ˆλ¬΄ μ‘Έλ €μ„œ; κΉ€μ„±μ‘° κ΅μˆ˜λ‹˜μ΄ λΆˆμŒν•˜λ‹¨ 생각이 λ“€ μ •λ„μ˜€λ‹€λŠ” -_-; (SEμͺ½ μ‹œκ°„λ‹Ή PPT μ§„ν–‰λŸ‰μ΄ 60μž₯μΌλ•Œ PL이 3μž₯μ΄μ—¬μ„œ κ·Ήκ³Ό 극을 λ‹¬λ Έλ‹€λŠ”;) μœ„μ˜ μ„λͺ…κ³Ό λ‹€λ₯΄κ²Œ, μˆ˜μ—…μ‹œκ°„λ•ŒλŠ” λͺ…λ Ήν˜• μ–Έμ–΄ νŽ˜λŸ¬λ‹€μž„μ˜ μ–Έμ–΄λ“€λ§Œ μ„λͺ…됨.

μˆ˜μ—…μ‹œκ°„λ•Œ κΈ°μ–΅λ‚˜λŠ”κ±΄ μ–Έμ œλ‚˜ λΉ„λ‚œμ˜ λŒ€μƒμΈ Fortran, λͺ¨λ“ κ²Œ μ™„λ²½ν•œ Ada, κ·Έ 이후 μ‹€μš©μ μΈ 선택 C++, Java. --μ„μ²œ

μ„μ²œμ΄ ν˜•λ§μ— λ™μ˜.. 왠지 λͺ¨λ₯΄κ²Œ.. μ±…λ§Œ 읽어 μ£ΌλŠ” λ“ν•œ.. 기뢄이 λ“€μ–΄.. 잠만 μž€λ‹€.. 독학이 λ‚˜μ„λ“.. 혼자 곡뢀할땐 재밌기만 ν•˜λ˜λ°.. κ΅μˆ˜λ‹˜ μˆ˜μ—…λ“€μ„λ•ŒλŠ” μ™œμ΄λ ‡κ²Œ μ‘Έλ¦¬λŠ”μ§€.. -_-a -- μ˜ν˜„

----
μ€‘μ•™λŒ€ν•™κ΅ 컴곡과에 컴파일러 μˆ˜μ—…μ΄ νκ°•λ˜λŠ” κ²½μš°κ°€ λ§Žμ€λ°, μ»΄νŒŒμΌλŸ¬μ™€ PL λ‘˜ 쀑 ν•˜λ‚˜λŠ” ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 되건, μ „μ‚°ν•™μžκ°€ 되건 λ°˜λ“œμ‹œ ν•„μš”ν•œ ꡐ양이닀.

μ»΄νŒŒμΌλŸ¬λΌ λ…ν•™ν•˜λ €λŠ” μ‚¬λžŒλ“€μ€ μ»΄νŒŒμΌλŸ¬μΆ”μ²œμ„œμ  μ°Έκ³ .
----
무심결에 μ“°κ³  μžˆλŠ” ν”„λ‘œκ·Έλž¨ μ–Έμ–΄μ˜ λ‚΄λΆ€λΌ λ°°μšΈ 수 μžˆλŠ” μ‹œκ°„μž…λ‹ˆλ‹€. κ°œμΈμ μœΌλ‘œλŠ” 이런 μ €λŸ° μ›λ¦¬λΌ ν•˜λ‚˜μ‹ μ•Œμ•„κ°ˆ λ•Œλ§ˆλ‹€ 재λΈμžˆμ—ˆκΈ° λ•Œλ¬Έμ— μˆ˜μ—…μ‹œκ°„λ„ 재λΈμžˆμ—ˆμŠ΅λ‹ˆλ‹€. (정말 같이 λ“£λŠ” 이듀은 μ‘Έλ¦° λͺ¨μ–‘μ΄λ”λΌκ³ μš”.) κ³Όμ œμ—μ„œ μ—„μ²­λ‚œ μ‹€μˆ˜λΌ λ§Žμ΄ μ €μ§ˆλŸ¬μ„œ μ•ˆνƒ€κΉμ§€λ§Œ, 과제 μžμ²΄λŠ” κ°•μ˜ λ‚΄μš©κ³Ό 맀우 μ μ ˆν•˜κ²Œ μ—°κ²°λœ 것이라고 μƒκ°ν•©λ‹ˆλ‹€.
μ•„μ‰¬μš΄ 뢀뢄은 ν”„λ‘œκ·Έλž¨ μ–Έμ–΄λ‘ μ΄λž€ κ³Όλͺ©μž„에도 λΆˆκ΅¬ν•˜κ³ , μ„λͺ…μ˜ 비쀑은 많이 μ“°μ΄λŠ” μ–Έμ–΄μΌμˆ˜λ‘ λ†’μ•˜λ˜ μ μž…λ‹ˆλ‹€. ν•¨μˆ˜ν˜•μ–Έμ–΄(FunctionalLanguage)λŠ” 기말 고사 λ°”λ‘œ μ „ μ‹œκ°„μ— ν•œ μ‹œκ°„λ§Œμ— 끝내렀닀가, κ·Έλ‚˜λ§ˆ 끝내지도 λͺ»ν•˜κ³  μš”μ•½ λΆ€λΆ„λ§Œ ν›‘μ—ˆμŠ΅λ‹ˆλ‹€. κ·Έ λ°–μ˜ μ’…λ₯˜μ— λŒ€ν•΄μ„œλŠ” 거의 절차적 μ–Έμ–΄, 특히 C계열 μ–Έμ–΄λΌ μ„λͺ…ν•˜λ‹€κ°€ λΆ€μ—° μ„λͺ…μœΌλ‘œ λ‚˜μ˜€λŠ” κ²½μš°κ°€ λ§Žμ•˜μŠ΅λ‹ˆλ‹€. λ…Όλ¦¬ν˜•μ–Έμ–΄(LogicLanguage)에 λŒ€ν•œ μ„λͺ…은 거의 λͺ» λ΄€μŠ΅λ‹ˆλ‹€. μ–΄μ°¨ν”Ό 쓰지 μ•Šμ„ 언어라고 μƒκ°ν•΄μ„œμΌκΉŒμš”.--Leonardong
----
see also SoftwareEngineeringClass
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:03
Processing time 0.0288 sec