프로그래밍 언어는 어떻게 만들어 지나요?
과거와 지금을 비교해 봤을때 프로그래밍 언어의 종류가 더 많아졌는데,
이게 편의성때문에 많아지는건지 아니면 다른 이유가 있는건지,
또한, 프로그래밍 언어가 어떻게 만들어 지는지 궁금해요
필요에 따라, 기술 발전에 따라 새로운 기기가 만들어지듯이,
프로그래밍 언어도 마찬가지입니다.
컴퓨터가 알아들을 수 있는 유일한 언어인 기계어와,
그 기계어와 1:1로 대치되는 어샘블리언어가 초기 언어인데
복잡한 일을 하는 프로그래밍을 하려니 너무나 어려워서 (불가능하진 않습니다)
고수준의 프로그래밍 언어를 만들게 되었습니다.
과학계산용 포트란, 사무용 코볼 등의 초기 언어부터 Pascal, C, C++, Java, Python 등 많은 언어가 나왔습니다.
이 언어들은 해결하려는 패러다임 (과학계산, 객체지향 등)에 맞추어 문법을 만들고
그 문법에 맞추어 기계어로 번역하는 도구를 만들게 됩니다.
- 프로그래밍 언어란?
프로그래밍 언어는 컴퓨터를 이용하여 특정 문제를 해결하기 위한 프로그램을 작성하기 위해 사용되는 언어입니다. 프로그래밍 언어는 일반적으로 저급언어(기계어, 어셈블리어)와 고급 언어(컴파일러 언어) 로 분류할 수 있습니다.
저급 언어
저급언어(Low Level Language)는 기계어와 어셈블리어로 구분됩니다.
기계어
컴퓨터가 직접 이해할 수 있는 언어입니다.
0과 1의 2진수 형태로 표현되며 수행시간이 빠릅니다.
CPU에 내장된 명령들을 직접 사용하는 것으로, 프로그램을 작성하고 이해하기가 어렵습니다.
기종마다 기계어가 다르므로 언어의 호환성이 없습니다.
어셈블리어
기계어와 1:1로 대응되는 기호로 이루어진 언어로, 니모닉(Mnemonic) 언어 라고도 합니다.
하드웨어 제어에 주로 사용되며, 언어의 호환성이 없습니다.
컴퓨터가 직접 이해할 수 없으므로 어셈블리어로 작성된 프로그램은 어셈블러를 사용하여 기계어로 번역해주어야 합니다.
고급 언어
1. 고급 언어(High Level Language)는 컴파일러 언어 라고도 하며, 인간이 실생활에서 사용하는 자연어와 비슷한 형태 및 구조를 가지고 있습니다.
2. 하드웨어에 대한 깊은 지식이 없어도 프로그램 작성과 수정이 용이합니다.
3. 컴퓨터가 이해할 수 있는 기계어로 번역하기 위해 컴파일러나 인터프리터가 사용됩니다.
4. 기계어와 어셈블리어를 제외한 C, JAVA, Python등의 언어가 고급언어에 해당됩니다.
언어는 개발자가 좀더 쉽고 빠르게 개발할 수 있도록 발전하고 있습니다.
감사합니다.
안녕허세요. 현직에서 프로그램을 하는 사람 입니다.
요즘운 정말 많은 프로그램 언어들이 생긴 것 같습니다.
새로운 프로그램이 생기는 이유는 속도 향상, 기존 언어의 불편함을 개선 접근성 용이 등 많은 이유로 생기는 것 같습니다.
정확하게 어떤 방식으로 프로그램 언어가 생기는 지는 확인이 어렵지만, 새로운 환경에 맞춰 거기에 사옹하기 편한 문법을 구성해 만드는 것 같네요.
프로그래밍 언어를 만드려고 한다면 어느 정도 지식이 필요하기는 합니다.
학교마다 다르겠지만 보통 컴퓨터공학과 3학년 정도에 컴파일러 수업을 들어보면 대략 이해가 가능할 것 같습니다.
새로운 언어가 나오는 이유중 하나는 편의성도 있고 기존의 언어의 문제점을 수정하는 경우도 있습니다.
여러가지 이유가 있다보니....
프로그래밍을 하려고 한다면 당연히 프로그래밍 언어를 배워야하기는 합니다.
컴퓨터 공학과로 진학하기 위해서는 프로그래밍을 할줄 알아야하는 것은 아닙니다.
많은 컴퓨터 공학과 학생들이 프로그래밍 언어를 1학년때 처음 배우는 경우가 많이 있습니다.
처음 배운다면 파이썬으로 시작하는 것을 추천합니다.
다른 언어보다 상대적으로 쉽기 때문에 좋습니다.
"파이썬 정복", "점프 투 파이썬(c언어도 있음)" 등의 책으로 공부해보는 것도 좋을 것 같습니다.
안녕하세요.
요즘 파이썬이 대세라고는 알려져있습니다.
보편적으로 웹개발이 취업하기도 광범위합니다.
또한 기본적으로 java는독학하기에도 수월합니다.
자바스크립트를 시작으로해서 앞부분 프론트를 마무리하고 java로 들어서면서 서비스쪽(조금 더 디테일하게) 배우는것이 괜찮을 것 같습니다.
자바스크립트는 현재 많이 사용중이므로 쉽게 접근하실 수 있습니다.
감사합니다.
안녕하세요. 아하(a-ha) 프로그래밍 지식 답변자 입니다.
언어가 다양해지는건 어떤 분야에 특화하여 발전하는 경우가 많습니다.
언어 제작과 관련해서 음... 책을 보시는게 제일 빠를 것 같아요.
제가 생각하기에 예제와 설계쪽 설명이 잘되어있다고 생각되는 책은
마츠모토 유키히로의 프로그래밍 언어 만들기 입니다~
링크 걸어두겠습니다
쿠팡 파트너스로 일하고 있어서 쿠팡 링크로 드려요~
[파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음]
답변이 됐으면 합니다. 좋은 하루 되세요!