프로그래밍 언어?
프로그램은 컴퓨터가 원하는 기능을 수행하게끔 만든다.
일상생활의 언어와 프로그래밍 언어는 사고 방식 자체가 다르다. (계산적 사고, 컴퓨팅 사고) C, C++를 공부하다 보면 자동적으로 습득되는 경향이 있다. 따로 공부해도 좋음!
애플리케이션도 프로그램이다. 문맥에 따라 사용이 다르다.
소프트웨어는 하드웨어와 비교되는 경우 사용한다.
기계어(Machine Language)
컴퓨터도 기계(Machine)라고 부른다. 전압의 차이(HIGH, LOW)로 신호를 인식한다. 실제로 프로그래밍할 때는 기계어를 거의 사용하지 않는다.
어셈블리 언어(Assembly Language)
주로 CPU가 하는 단위 기능들을 직접 수행하거나, 메모리에 있는 정보를 옮기고 등등... 직접적으로 제어할 수 있는 저수준의 언어다. 이 역시 최근에는 실제 프로그래밍할 때 거의 사용하지 않는다.
고수준 언어(High-Level Languages)
프로그래밍할 때 사용하는 언어라고 생각하면 된다.
고수준이 무조건 좋은 건 아니다... '용어의 문제' 하드웨어를 정밀하게 제어할 수 있는 것이 Low-Level, 사람에게 가까운 것이 High-Level
좀 더 쓰기 편하고 인간의 언어에 가까운 프로그래밍 언어들이 나오고 있어서, C와 C++를 중간 레벨의 언어라고 부르는 경우가 있다.
컴파일러(Compiler)
우리가 프로그래밍을 하고(Code), 그 프로그램이 컴퓨터에서 작동하려면 기계어로 번역하는 프로그램이 있어야 한다.
컴파일러는 작성한 코드를 변환해서 실행 파일로 만든다. 해당 실행 파일이 우리가 만들고자 하는 프로그램이다.
인터프리터(Interpreter)
실행 파일이 생성되지 않는다. 인터프리터 언어에서 작성하는 언어는 보통 스크립트(Script)라고 불러 왔다.
작성한 스크립트를 인터프리터라는 프로그램에 집어 넣으면, 실행 파일 없이 바로 중앙처리장치를 거쳐 실행하게 된다.
대부분의 경우, 인터프리터 언어가 더 느리다. 같은 스크립트를 여러 번 실행하면, 인터프리터를 여러 번 거쳐야 하기 때문에 오히려 느리다.
ex: 파이썬
이식성(Portability)
컴파일러 언어를 사용할 경우, 해당 기계(ex: Windows-Linux)마다 컴파일러가 다르다. 문법의 차이가 있는 경우도 있다.
Java의 경우, 소스 파일을 컴파일하면 중립적인 형태의 바이트코드라는 것이 생성된다. 각 기계마다 가상 머신의 차이가 있다.
해당 포스트는 '홍정모의 따라하며 배우는 C++' 강의를 수강하며 개인 백업용으로 메모하였습니다.
인프런: https://www.inflearn.com/course/following-c-plus
홍정모의 따라하며 배우는 C++ - 인프런
만약 C++를 쉽게 배울 수 있다면 배우지 않을 이유가 있을까요? 성공한 프로그래머로써의 경력을 꿈꾸지만 지금은 당장 하루하루 마음이 초조할 뿐인 입문자 분들을 돕기 위해 친절하고 자세하게 설명해드리는 강의입니다. 초보로 시작하더라도 중급을 넘어 고급 프로그래머로 가는 길목에 들어서고 싶으시다면 최고의 디딤돌이 되어드리겠습니다. 여러분의 꿈을 응원합니다! 초급 프로그래밍 언어 C++ 온라인 강의 C++
www.inflearn.com