본문 바로가기

프로그래밍 언어26

2020년 3월 프로그래밍 언어 순위 및 비교 2020년 3월 TIOBE Index TIOBE Index는 프로그래밍 언어의 인기와 관련된 수치를 기반으로 프로그래밍 언어의 순위를 결정하며, 순위 산정에 이용되는 각 수치는 아래와 같다. 해당 프로그래밍 언어를 이용하는 엔지니어의 수: 과거에 프로그래밍 언어를 배웠던 엔지니어들도 포함되기 때문에 이 수치는 프로그래밍 언어의 과거부터 현재까지의 인기를 간접적으로 포함한다. 해당 프로그래밍 언어 관련 강좌 및 홈페이지의 수: 프로그래밍 관련 강좌는 대부분 C와 Java처럼 꾸준히 이용되는 프로그래밍 언어를 기본으로 포함하기 때문에 과거부터 꾸준히 인기 있는 프로그래밍 언어를 간접적으로 나타낸다. Google, Bing, Wikipedia 등에서 프로그래밍 언어가 검색된 횟수: 현재 인기 있는 프로그래밍 .. 2020. 3. 5.
2019년 11월 프로그래밍 언어 순위 및 비교 2019년 11월 TIOBE Index TIOBE Index는 해당 프로그래밍 언어를 이용하는 엔지니어 및 업체의 수와 Google, Bing, Yahoo 등의 검색 엔진을 통해 검색되는 결과물의 수를 바탕으로 순위를 결정한다. 따라서 TIOBE index에서는 C/C++이나 Java와 같은 전통적인 프로그래밍 언어의 순위가 높게 산정되는 경향이 있다. Top 5 프로그래밍 언어 가장 인기 있는 5개의 프로그래밍 언어로는 Java, C, Python, C++, C#이 선정되었다. 그 중에서도 Python은 꾸준히 인기가 상승하여 2019년도부터는 C++을 제치고 3번째로 인기있는 언어로 선정되었다. 최근 다양한 분야에서 머신 러닝이 활발히 이용됨에 따라 Python의 인기 또한 크게 증가한 것으로 보인다.. 2019. 11. 30.
2019년 2월 프로그래밍 언어 순위 및 비교 TIOBE Index for June 2018 TIOBE programming language index는 해당 프로그래밍 언어를 이용하는 엔지니어 및 업체의 수와 Google, Bing, Yahoo 등의 검색 엔진을 통해 검색되는 결과물의 수를 바탕으로 순위를 결정한다. 따라서 TIOBE index에서는 C/C++이나 Java와 같은 전통적인 프로그래밍 언어의 순위가 높게 산정되는 경향이 있다. 그림 1. 2019년 2월 TIOBE 프로그래밍 언어 순위 (출처: TIOBE). Top 5 프로그래밍 언어 2018년도까지만해도 Java와 C, C++, Python, C#은 최근 3년간 가장 인기 있는 프로그래밍 언어로 선정되었으며, 5개의 프로그래밍 언어의 rating을 합치면 약 50%에 해당하는 수치를.. 2019. 2. 16.
2018년 12월 최신 프로그래밍 언어 순위 TIOBE Index for December 2018 TIOBE programming language index는 해당 프로그래밍 언어를 이용하는 엔지니어 및 업체의 수와 Google, Bing, Yahoo 등의 검색 엔진을 통해 검색되는 결과물의 수를 바탕으로 순위를 결정한다. 따라서 TIOBE index에서는 JavaScript와 같은 가벼운 프로그래밍 언어보다는 C/C++이나 Java와 같이 전통적인 프로그래밍 언어의 순위가 높게 산정되는 경향이 있다. [그림 1] TIOBE programming language index (출처: TIOBE) Top 5 Programming languages 가장 특이한 점은 C# 대신 Visual Basic .NET이 top 5 프로그래밍 언어에 올라갔다는 것이.. 2018. 12. 23.
2018년 6월 최신 프로그래밍 언어 순위 TIOBE Index for June 2018 TIOBE programming language index는 해당 프로그래밍 언어를 이용하는 엔지니어 및 업체의 수와 Google, Bing, Yahoo 등의 검색 엔진을 통해 검색되는 결과물의 수를 바탕으로 순위를 결정한다. 따라서 TIOBE index는 C/C++이나 Java와 같이 전통적인 프로그래밍 언어의 순위가 높게 산정하는 경향이 있다. [그림 1] TIOBE programming language index (출처: TIOBE) Top 5 Programming languagesJava와 C, C++, Python, C#은 최근 3년간 꾸준히 가장 인기 있는 프로그래밍 언어로 선정되고 있다. 5개의 프로그래밍 언어의 ratings를 합치면 약 50%.. 2018. 6. 18.
2018년 프로그래밍 언어 순위 및 비교 TIOBE Index for April 2018 TIOBE programming language index는 해당 프로그래밍 언어를 이용하는 엔지니어 및 업체의 수와 Google, Bing, Yahoo 등의 검색 엔진을 통해 검색되는 결과물의 수를 바탕으로 순위를 결정한다. 따라서 TIOBE index는 C/C++이나 Java와 같이 전통적인 프로그래밍 언어의 순위를 높게 산정하는 경향이 있다. [그림 1] TIOBE programming language index (출처: TIOBE) RedMonk Programming Language Rankings for January 2018 RedMonk Programming Language Ranking은 GitHub에서 해당 프로그래밍 언어로 작성된 소스 코.. 2018. 5. 1.
[컴파일러] - 구문 분석 (Syntax Analysis) III 1. 상향식 파싱 (bottom-up parsing) 상향식 파싱은 트리의 가장 아래쪽에 위치한 leaf node에서 시작하여 트리의 최상단인 root node쪽으로 진행하면서 파싱을 수행하는 방법이다 [그릠 1]. 상향식 파싱에는 이동-감축 파싱 (shift-reduce parsing)이라고 하는 상향식 파싱의 일반적인 유형이 있으며, 하향식 파싱을 위한 LL 문법과 같이 상향식 파싱을 위한 LR 문법이 있다. 상향식 파싱은 완성된 파스 트리 (parse tree)의 관점에서 볼 때, 가장 우측의 nonterminal 부터 유도 (derivation)가 이루어지기 때문에 입력 문자열에 대한 최우단 유도 (rightmost derivation)을 찾는 것과 같다. [그릠 1] 상향식 파싱 (bottom-.. 2016. 8. 21.
[컴파일러] - 구문 분석 (Syntax Analysis) II 1. 하향식 파싱 (Top-down parsing) 하향식 파싱은 root node에서 시작하여 파스 트리의 노드들을 전위 순서 (preorder)에 따라 생성하는 것이다 [그림 1]. 따라서, 하향식 파싱은 항상 문자열의 가장 왼쪽 nonterminal부터 유도가 이루어지기 때문에 하향식 파싱은 입력 문자열에 대한 최좌단 유도 (leftmost derivation)을 찾는 것과 같다. [그림 1] 하향식 파싱 (top-down parsing)을 통한 파스 트리 (parse tree)의 생성 하향식 파싱에는 가장 일반적인 형태인 재귀적 하강 파싱 (recursive descent parsing)과 재귀가 필요없는 예측 파싱 (predict parsing) 등이 있다. 2, 재귀적 하강 파싱 (Recurs.. 2016. 8. 21.
[컴파일러] - 구문 분석 (Syntax Analysis) I 1. 개요 컴파일러에서는 구문 분석을 수행하는 모듈을 파서 (parser)라고 한다. 파서는 어휘 분석기에서 생성한 토큰 스트림이 생성 가능한 것인지를 판별하고, 토큰 스트림으로부터 파스 트리 (parse tree)를 생성한다.파서의 일반적인 유형으로는 보편적 (universal), 하향식 (top-down), 상향식 (bottom-up)이 있다. 보편적 파싱 방법은 어떠한 문법도 파싱할 수 있지만, 파싱 과정이 매우 비효율적이기 때문에 상용 컴파일러에는 적용될 수 없다. 따라서, 컴파일러에서는 하향식과 상향식 파서가 이용되며, 주로 상향식 파서가 많이 이용된다. 2. 문맥 자유 문법 (Context-free grammar, CFG) 우리가 영어 문장에서 문법적 오류를 검출하기 위해서는 영어 문법을 이해.. 2016. 8. 20.
2016년 1~2월 프로그래밍 언어 순위 및 순위표별 특징 TIOBETIOBE Programming Language Ranking은 전 세계의 프로그래머, 프로그래밍 강좌, 프로그래밍 그룹 수와 Google, Bing, Yahoo, Wikipedia, Amazon, YouTube와 같은 검색 엔진을 통해 검색되는 프로그래밍 언어의 종류를 분석하여 프로그래밍 언어 순위를 결정한다. 프로그래머, 프로그래밍 강좌, 프로그래밍 그룹 수를 순위에 반영하기 때문에 현재 주류를 이루고 있고, 프로그래밍 입문자가 가장 먼저 접하는 C/C++, Java와 같은 전통적인 프로그래밍 언어의 순위가 높게 랭크되는 경향이 있다. [2016년 2월 TIOBE 프로그래밍 언어 순위, 출처 : TIOBE] RedMonkRedMonk Programming Language Ranking은 Gi.. 2016. 2. 23.
[컴파일러] - 어휘 분석 (Lexical analysis) III 1. 개요 이전 글에서 서술한 어휘 분석의 토큰, 정규식, 정규문법 등의 개념을 이용하여 실제로 실행이 가능한 어휘 분석기를 구현하는 과정을 설명한다. C나 Java와 같은 프로그래밍 언어를 이용하여 직접 어휘 분석기를 구현한다면 파일입출력, 문자열 처리, 정규식과 정규문법의 구현 등 실질적으로는 컴파일러와 관련이 없는 프로그래밍 작업이 어휘 분석기 구현의 대부분을 이루게 될 것이다. 그래서 이 글에서는 "Flex"라는 오픈소스 툴을 이용하여 간단하게 어휘 분석기를 구현하는 방법을 설명한다. Flex는 어휘 분석기 툴로 가장 유명한 Lex의 최신 버전이다. 2. Flex 설치 Flex는 GNU General Public License로 공개된 소프트웨어로써, 별도의 라이센스 구입 없이 이용할 수 있다. .. 2016. 1. 25.
[컴파일러] - 어휘 분석 (Lexical analysis) II 1. 토큰(token) 언어 이론에서 알파벳 (alphabet)은 a, b, 1, 2, /와 같은 기호의 유한 집합이다. 알파벳에 속한 기호들의 유한한 나열을 스트링 (string) 또는 단어 (word)라고 한다. 어떠한 알파벳이 a, b, c를 포함한다면, abc는 이 알파벳으로 만들 수 있는 스트링이 된다. 그러나 만약 어떠한 알파벳이 a, b로 구성된다면 abc는 이 알파벳으로 만들 수 있는 스트링이 아니다.어떠한 스트링 $s$에 대해 $s$의 절댓값 $|s|$는 스트링에 나열된 기호의 수이며, 이를 스트링의 길이라고 한다. 예를 들어, 스트링 "lexical"의 길이는 7이 된다. 언어 이론에서는 길이가 0인 스트링도 존재하는데, 이를 empty string이라고 한다.언어 (language)는.. 2016. 1. 19.