언어학,linguistics
natural_language 자연어, 자연언어, natural_language =
https://en.wiktionary.org/wiki/natural_language
//위아래서로관계mk//
형식언어,formal_language
{
MKLINK
formalized_language와? {
https://encyclopediaofmath.org/wiki/Formalized_language 형식화,formalization 언어,language }
형식체계,formal_system
형식문법,formal_grammar -
문법,grammar
프로그래밍언어,programming_language
query_language
문법
단어,word {
https://encyclopediaofmath.org/wiki/Word }
rel
알파벳,alphabet
from
수학백과: 순서쌍(https://terms.naver.com/entry.naver?docId=3338068&cid=47324&categoryId=47324) 4. 언어
{
기호,symbols들의
집합,set이
알파벳,alphabet이며, 알파벳의 유한 개의
순서쌍,ordered_pair(curr 튜플,tuple)을
단어,word라 한다.
이 용어를 사용할 때에는 (i.e. 순서쌍이 아닌 단어란 용어를 쓸 때에는) 다중순서쌍
(a1, …, an)
을 그냥
a1 … an
으로 나타낸다.
i.e. ordered pair와 word는 본질은 같고 표기법,notation 차이.
ordered n-pair, n-tuple | (a1, …, an) |
word (of length n) | a1 … an |
단어는 그
길이,length로 구분할 수 있는데, 길이가 n인 단어들 전체의 집합을
An
으로 나타낸다. 따라서 모든 단어들의 집합은 다음과 같다.
A* := A1 ∪ A2 ∪ A3 ∪ …
저자에 따라 길이가 0인 공단어
(수학백과 링크는 공집합,empty_set) ∅도 단어로 본다. (띄어쓰기 같은, 아무 형태가 없는 기호를 사용하기도 한다) 이 때는 모든 단어들의 집합은 다음과 같다.
A* := A0 ∪ A1 ∪ A2 ∪ A3 ∪ …
(단어들의 합성)
단어를 합성(
합성,composition?
합성,synthesis? concatenation? 영어?)하여 새로운 단어를 얻을 수 있다.
(...)
단어들을 합성하는 함수
Am × An → Am+n
(w, u) ↦ wu
는
결합법칙,associativity을 만족시킨다. 또 공단어는
항등원,identity_element 역할을 한다.
(mk page
공단어,empty_word? { cmp
공문자열,empty_string })
} // alphabet
컴퓨터 언어의 구분
일단
레벨,level에 따라, // 다른분류들 추가TODO
상위언어 high-level language
하위언어 low-level language
대체적으로,
상위언어는 사람들이 읽고 쓰기 편한 언어,
하위언어는 컴퓨터가 이해하는 언어, 기계어. // machine_language or machine_code
상층부 언어는 그 아래 언어로 번역된다 - translation, compilation. 그 번역기는 (보통)
컴파일러,compiler. 기타
어셈블러,assembler 등
- ↑인간적
- pseudocode
- PL statement
- assembly language statement
- machine code / machine language
- ↓기계적
공개 서적
보유서적
IBM PC 어셈블리 프로그래밍 5판
Peter Abel
Sub:
자연어,natural_language vs
인공어,artificial_language
형식언어,formal_language
마크업언어,markup_language
기술언어,description_language - for
기술,description
stylesheet_language
프로그래밍언어,programming_language,PL or
PL,programming_language -
PL을 명시할지 말지 TBD
이것들 일단 이렇게 만드는데, 혹시 문제가 생긴다면 별도 namespace에 분류할지, _PL이나 _programming_language나 _language 같은 suffix를 붙일지 pagename scheme TBD.
파이썬,Python
피에이치피,PHP or
PHP_Hypertext_Preprocessor
루비,Ruby
펄,Perl
자바,Java
루아,Lua
씨샵,CSharp?
씨플플,CPP?
씨,C? ...
C언어,C_language?
에이피엘,APL?
제이,J?
비큐엔,BQN?
// 위 셋 비교 :
APL J BQN
알,R?
파스칼,Pascal
에이다,Ada
고,Go
프롤로그,Prolog
러스트,Rust
스몰토크,Smalltalk
오브젝티브씨,Objective-C?
엘릭서? 일릭서? Elixir
줄리아? Julia
하스켈,Haskell
...
package_manager가 언어를 가진 경우도. Nix language
nix language
...
/// PL design
https://proglangdesign.net/wiki/
https://www.pls-lab.org/
Programming_language_design_and_implementation
인터프리터,interpreter 해석기? {
인터프리터 Interpreter_(computing) }
컴파일러,compiler -
컴파일,compile
lexer
파서,parser
어셈블러,assembler
/// PL theory
책:
Practical Foundations for Programming Languages (PFPL)
Robert Harper
https://www.pls-lab.org/en/pfpl
Programming_language_theory
Up: 설계/디자인 design
artificial_language , constructed_language (conlang) //
artificial_language constructed_language
Esperanto, Ido, Interlingua,
메타언어,metalanguage
{
metalanguage
https://foldoc.org/metalanguage
}