언어,language

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
}
프로그래밍언어,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의 차이"[1]
cmp object_theory vs metatheory via "object theory와 metatheory의 구분을 해 주지는 않기 때문에"
}
중간언어 intermediate_language (IL)
{
MKLINK
중간표현 intermediate_representation (IR) - 표현,representation




특징
call-by-name / call_by_name



WpKo:프롤로그_(프로그래밍_언어)
= https://ko.wikipedia.org/wiki/프롤로그_(프로그래밍_언어)
= https://ko.wikipedia.org/wiki/프롤로그_(프로그래밍_언어)
...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()


루아의 코루틴으로 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







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:



Haskell_Curry에서 이름을 딴? - Yes

Misc twin:
WtEn:Haskell


웹어셈블리,WebAssembly,Wasm (= Wasm)
=웹어셈블리,WebAssembly =,WebAssembly 웹어셈블리 WebAssembly | =,wasm wasm
{




}
Simula =,Simula . Simula
{
시뮬라 ? rationale ? chkout WtEn:Simula



...
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