#noindex Sub: [[자연어,natural_language]] [[인공어,artificial_language]] [[명세언어,specification_language]] - curr at [[명세,specification]] [[형식언어,formal_language]] [[컴퓨터언어,computer_language]] [[기계어,machine_language]] [[logical_language]] =,logical_language . logical_language { logical language WtEn:logical_language (?) https://planetmath.org/logicallanguage https://proofwiki.org/wiki/Definition:Logical_Language MKL: [[형식언어,formal_language]] [[언어,language]] [[로직,logic]] Ggl:"logical language" TODO ADDTO [[로직,logic]] and del this line } // [[오더,order]]에 따라 { 1 [[first-order_language]] =,first-order_language . first-order_language https://planetmath.org/firstorderlanguage } [[프로그래밍언어,programming_language]] [[DDL,data_definition_language]] [[DML,data_manipulation_language]] [[메타언어,metalanguage]] =메타언어,metalanguage =,metalanguage . metalanguage Ndict:메타언어 WtEn:metalanguage .. Ggl:metalanguage { cmp [[object_language]] via "혹자의 말을 빌리자면, object language와 metalanguage의 구분도 잘 안 합니다 .... 여타 교재와 달리 object language와 metalanguage의 차이"[* https://hanuljeon95.github.io/Set-theory-how-to-learn/] "object language vs metalanguage" Bing:"object language vs metalanguage" Ggl:"object language vs metalanguage" cmp [[object_theory]] vs [[metatheory]] via "object theory와 metatheory의 구분을 해 주지는 않기 때문에" "object theory vs metatheory" Bing:"object theory vs metatheory" Ggl:"object theory vs metatheory" } 중간언어 [[intermediate_language]] (IL) { MKLINK 중간표현 [[intermediate_representation]] (IR) - [[표현,representation]] Sub: WpKo:공통_중간_언어 = https://ko.wikipedia.org/wiki/공통_중간_언어 WpEn:Common_Intermediate_Language = https://en.wikipedia.org/wiki/Common_Intermediate_Language } [[기술언어,description_language]] [[interface_description_language]] or [[interface_definition_language]] (IDL) |=,IDL IDL { [[인터페이스,interface]] [[정의,definition]] [[기술,description]] [[언어,language]] [[기술언어,description_language]] Sub: ASN.1 { https://en.wikipedia.org/wiki/ASN.1 } [[WpKo:인터페이스_정의_언어]] = https://ko.wikipedia.org/wiki/인터페이스_정의_언어 [[WpEn:Interface_description_language]] = https://en.wikipedia.org/wiki/Interface_description_language } [[PHP_language]] [[query_language]] (for [[database]]) [[SQL,structured_query_language]] [[QUEL]] [[프로그래밍언어,programming_language]] [[CPlusPlus언어]] (C++) [[C언어]] (C) [[D언어,D_language]] (D) [[CSharp언어]] (C#) [[언어모델,language_model]] [[언어학,linguistics]] [[파스칼,Pascal]] [[델파이,Delphi]] [[자바,Java]] [[자바스크립트,JavaScript]] [[파이썬,Python]] => [[VG:파이썬,Python]] [[펄,Perl]] [[루비,Ruby]] [[스킴,Scheme]] [[Clojure]] [[알골,ALGOL]] { /// "ALGOL"을(를) 전체 찾아보기 => http://tomoyo.ivyro.net/123/wiki.php/asdf?action=fullsearch&value=ALGOL&context=20&case=1 특징 call-by-name / call_by_name https://zetawiki.com/wiki/ALGOL https://zetawiki.com/wiki/알골_60 https://www.pls-lab.org/en/Algol_60 https://www.pls-lab.org/en/Algol-like_languages [[WpKo:알골_(프로그래밍_언어)]] = https://ko.wikipedia.org/wiki/알골_%28프로그래밍_언어%29 HashKr:알골 = http://wiki.hash.kr/index.php/알골 } [[포트란,Fortran]] or FORTRAN ? { HashKr:포트란 = http://wiki.hash.kr/index.php/포트란 } [[BASIC]] - 베이직 베이식 중 tbd. [[프롤로그,Prolog]] =,Prolog . Prolog { 프롤로그 [[WpKo:프롤로그_(프로그래밍_언어)]] = https://ko.wikipedia.org/wiki/프롤로그_(프로그래밍_언어) = https://ko.wikipedia.org/wiki/프롤로그_%28프로그래밍_언어%29 ...Ndict:프롤로그 Ggl:프롤로그 Ndict:Prolog Ggl:Prolog ... Ggl:프롤로그+입문 Naver:프롤로그+입문 ... YouTube:프롤로그 } [[스몰토크,Smalltalk]] =,smalltalk . { 스몰톡 https://rosettacode.org/wiki/Category:Smalltalk } [[Self]] { [[WpKo:셀프_(프로그래밍_언어)]] [[WpEn:Self_(programming_language)]] } [[Newspeak]] { [[WpEn:Newspeak_(programming_language)]] } [[아이오,Io]] { [[WpKo:아이오_(프로그래밍_언어)]] } [[루아,Lua]] =루아,Lua 루아,Lua 루아,Lua { [[DSL]]=[[domain_specific_language]]로 가장 많이 쓰이는 듯?? / Neovim{ Ggl:neovim }이 Ggl:vimscript 대신 이걸 [[scripting_language]]로 씀. [[메타테이블,metatable]] =메타테이블,metatable =,metatable 메타테이블 metatable { {{{ local user = { first = "John", last = "Doe" } local metaUser = { __tostring = function(user) -- 내부 method를 재정의? <- 아래 print(user)에서 호출됨. return user.first .. " " .. user.last end __call = function(user) -- user자체를 호출되게 만드는 것. <- 아래 user()에서 호출됨. print("Tables can be functions?!") end } setmetatable(user, metaUser) -- user 객체를 새로운 behavior에 연결. print(user) user() }}} via https://youtu.be/f5MpjDtnFP4?si=mLzN38g9R8ltUKtH&t=345 } 루아의 코루틴으로 cooperative multitasking을 할 수 있다. 이런 식으로. [[루아,Lua]] [[코루틴,coroutine]] { ex. {{{ function task1() for i = 1, 5 do print("Task 1, step " .. i) coroutine.yield() end end function task2() for i = 1, 5 do print("Task 2, step " .. i) coroutine.yield() end end local co1 = coroutine.create(task1) local co2 = coroutine.create(task2) for i = 1, 5 do coroutine.resume(co1) coroutine.resume(co2) end }}} 결과는 Task 1, step 1 Task 2, step 1 Task 1, step 2 Task 2, step 2 Task 1, step 3 Task 2, step 3 Task 1, step 4 Task 2, step 4 Task 1, step 5 Task 2, step 5 via https://youtu.be/f5MpjDtnFP4?si=mLzN38g9R8ltUKtH 6:10 } } // metatable Ggl:"Lua metatable" Ggl:"루아 메타테이블" https://librewiki.net/wiki/Lua [[WpKo:루아_(프로그래밍_언어)]] } // Lua .... Ggl:"Lua language" Bing:"Lua language" [[딜런,Dylan]] =,Dylan { [[WpKo:딜런_(프로그래밍_언어)]] [[WpEn:Dylan_(programming_language)]] = https://en.wikipedia.org/wiki/Dylan_(programming_language) } [[하스켈,Haskell]] =,Haskell . Haskell 해스컬 /ˈhæskəl/ (wpen) { Haskell https://wiki.haskell.org/A_brief_introduction_to_Haskell Bmks ko 한국어 책: https://wikidocs.net/book/204 https://en.wikibooks.org/wiki/Haskell 의 번역. [[monad]] =,monad =,monad . monad WtEn:monad Srch:monad WpEn:Monad adj. monadic ? [[free_monad]] =,free_monad =,free_monad . free_monad WtEn:free_monad Srch:free_monad WpEn:Free_monad { https://wiki.haskell.org/Free_monad } Twin: [[WpSp:Haskell]] = https://simple.wikipedia.org/wiki/Haskell [[WpEn:Haskell]] = https://en.wikipedia.org/wiki/Haskell [Haskell_Curry]에서 이름을 딴? - Yes Misc twin: WtEn:Haskell } // Haskell [[다트,Dart]] =다트,Dart =,Dart 다트 Dart { [[WpKo:다트_(프로그래밍_언어)]] [[WpEn:Dart_(programming_language)]] } [[어셈블리,assembly]] 보다는 [[어셈블리어,assembly_language]] - rel [[어셈블러,assembler]] [[웹어셈블리,WebAssembly,Wasm]] (= Wasm) =웹어셈블리,WebAssembly =,WebAssembly 웹어셈블리 WebAssembly | =,wasm wasm { https://webassembly.org/ WpKo:웹어셈블리 WpEn:WebAssembly ... YouTube:웹어셈블리+프로그래밍 } Simula =,Simula . Simula { 시뮬라 ? rationale ? chkout WtEn:Simula https://ko.wikipedia.org/wiki/시뮬라 https://rosettacode.org/wiki/Category:Simula https://en.wikipedia.org/wiki/Simula Wiki:SimulaLanguage ? ... Naver:"Simula" Ggl:"Simula" } Caml =,Caml . / OCaml =,OCaml . { https://rosettacode.org/wiki/Category:OCaml Ndict:OCaml Ggl:OCaml } [[Idris]] =,Idris =,Idris . Idris { https://github.com/jwvg0425/IdrisPractice Naver:Idris+언어 Bing:Idris+언어 Ggl:Idris+언어 Ggl:Idris+language Idris } [[Clean]] =,Clean =,Clean . Clean { [[WpKo:클린_(프로그래밍_언어)]] = https://ko.wikipedia.org/wiki/클린_(프로그래밍_언어) = https://ko.wikipedia.org/wiki/클린_%28프로그래밍_언어%29 } = PL 관련 주제 = https://en.wikipedia.org/wiki/Language_interoperability rel [[glue_language]] https://en.wikipedia.org/wiki/Language_binding [[바인딩,binding]] rel [[glue_code]] [[glue_code]] =,glue_code . glue_code { WtEn:glue_code ? rel [[glue_language]] rel [[wrapper]] { [[wrapper_library]] { = library_wrapper https://en.wikipedia.org/wiki/Wrapper_library } [[wrapper_function]] { https://en.wikipedia.org/wiki/Wrapper_function } [[driver_wrapper]] { rel [[device_driver]] https://en.wikipedia.org/wiki/Driver_wrapper } 기타 wrapper class / primitive wrapper class ... 이건 primitive data type을 wrap해주는 그거... (Java 등 OOPL에서.) WpEn:Wrapper_class redir to https://en.wikipedia.org/wiki/Primitive_wrapper_class_in_Java } rel [[stub]] rel shim ? rel [[adapter_pattern]] { [[인터페이스,interface]] https://ko.wikipedia.org/wiki/어댑터_패턴 https://en.wikipedia.org/wiki/Adapter_pattern } https://en.wikipedia.org/wiki/Glue_code } = PL 간 비교 = https://hyperpolyglot.org/ - syntax비교 p PlComparison https://wiki.python.org/moin/LanguageComparisons 구체적으로 Python vs Haskell https://wiki.python.org/moin/PythonVsHaskell Python vs Ruby https://wiki.python.org/moin/PythonVsRuby ---- http://www.aistudy.com/linguistics/language.htm