C언어의 컴파일과 컴파일러는 무엇인가요?
안녕하세요!
C언어 초보입니다. 기본적인 질문인데 답변 부탁드립니다.
C언어의 컴파일과 컴파일러는 무엇인지 알고 싶습니다.
그리고 위 2가지의 차이점이 무엇인지 알고 싶습니다.
감사합니다.
안녕하세요 c언어의 컴파일과 컴파일러에 대해 설명해 드리겠습니다.
컴파일이란 우리가 쓴 소스코드를 컴퓨터가 이해할 수 있는 언어로 번역해주는 것입니다.
컴파일러는 이 컴파일을 수행해주는 프로그램이고요.
c언어 컴파일러의 종류에는 visual studio, dev c++, code block이 있습니다.
감사합니다.
프로그래밍을 하려고 한다면 당연히 프로그래밍 언어를 배워야하기는 합니다.
컴퓨터 공학과로 진학하기 위해서는 프로그래밍을 할줄 알아야하는 것은 아닙니다.
많은 컴퓨터 공학과 학생들이 프로그래밍 언어를 1학년때 처음 배우는 경우가 많이 있습니다.
처음 배운다면 파이썬으로 시작하는 것을 추천합니다.
다른 언어보다 상대적으로 쉽기 때문에 좋습니다.
"파이썬 정복", "점프 투 파이썬(c언어도 있음)" 등의 책으로 공부해보는 것도 좋을 것 같습니다.
안녕하세요 현직 4년차 프로그래머입니다.
우선 컴파일러란 컴퓨터가 우리가 작성한 코드(소스파일)를 이해할 수 있도록 컴퓨터 언어로 해독해주는 프로그램입니다.
우리가 만든 코드(소스 파일)를 컴파일러라는 통역기가 기계어로 번역해준다고 생각하시면 쉽습니다.
이때 번역하는 행위를 컴파일 한다고 하는겁니다.
안녕하세요.
질문내용 답변드립니다.
C언어로 프로그래밍을 작성하게되면 기계가 이해할 수 있도록 변환을 해주어야하는데
이작업을 "컴파일" 한다라고 보시면 되고요.
"컴파일러" 는 컴파일을 해주는 도구(프로그램) 이라고 보시면 되겠습니다.
결국 C언어는 사람이 보기위한 언어이고 이것을 기계가 알 수 있게 변환하는 도구가 "컴파일러" 변환하는 작업을 "컴파일" 이라고 합니다.
안녕하세요
C언어의 컴파일과 컴파일러의 차이점을 질문 하셨는데요.
간단하게 설명 드리면 '질문' 과 '질문러' 뭐 이런식으로 비유를 들 수도 있겠네요.
'질문'이라는 행위가 있다면 그 행위를 하는 주체를 '질문러' 라고 할 수 있겠죠?
컴파일은 프로그래밍 언어를 기계(컴퓨터)가 이해할 수 있게 변환하는 과정입니다.
C언어도 마찬가지 입니다. 우리가 통합개발환경이나 텍스트 에디터에 코딩을 하려고 적는
printf 같은 함수나 변수 선언 같은 경우는 우리가 알아볼 수 있는 언어이고 컴퓨터는 기계어을 알아 들을 수 있기 때문에
우리가 적은 코드를 컴퓨터가 알아 들을 수 있게 변환해야 합니다.
이 역할을 해주는게 바로 컴파일러 입니다.
다시 예를 들면 번역을 컴파일이라 부르면 구글 번역기, 파파고 번역기는 컴파일러가 되는거죠
답변이 도움이 되었으면 하네요
우리가 알고 있는 프로그래밍 언어(java, C 등)는 기계어와 사람의 언어를 연결해주는 언어입니다.
컴파일러는 프로그래밍 언어를 기계어로 바꿔주는 번역 프로그램으로 생각하시면 되고,
컴파일은 그 과정이라 생각하시면 됩니다.
참고로 컴파일러는 1개만 존재하는 것이 아니라 종류가 다양합니다
C언어의 경우 터보 C, 볼랜드 C, 비주얼 C, WC(왓콤씨) 등의 컴파일러가 존재합니다.
질문 주신 "C언어의 컴파일과 컴파일러"는
컴파일은 C언어로 만든 코드를 컴퓨터가 이해할 수 있는 기계어(프로그램)로 바꾸는 과정을 의미합니다.
컴파일러는 컴파일을 할 수 있는 프로그램입니다.
컴파일러 세계에서 많이 쓰는 영어중에 셀프호스팅이라는 용어가 있습니다. 이 용어는 부트스트래핑이라는 용어로도 쓰입니다. 후자는 부츠를 신을 때 발 뒤꿈치쪽에 있는 부츠 스트랩(끈)을 잡아 당겨서 신는 것을 비유한 표현인데 자기 자신에 달려 있는 끈이 자기를 다시 든다는 그런 의미를 담고 있습니다.
최초의 C 컴파일러는 어셈블러로 만들었습니다.
하지만 그 이후에는 C로 만들어진 코드를 프로그램으로 만들 수 있으므로 더 로우레벨 언어인 어셈블러보다는 C언어 자기 자신으로 컴파일러를 만드는 것이 개발이 도 용이합니다.
따라서 최근 C컴파일러들은 C언어로 만든다고 보면 되겠습니다.
컴파일러는 이해하기 쉽게 얘기하면 인간이 짠 코드를 컴퓨터가 이해할 수 있게 변역해 주는 역할을 하는 프로그램입니다. 컴파일은 그 번역하는 행위를 가리킵니다.
https://ko.m.wikipedia.org/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC
컴파일은 우리가 프로그램을 인간이 알아볼수있도록 코딩한것을 기계어로(이진명령어) 바꿔준다고 생각하면 될꺼같습니다. 컴파일어는 컴파일을 해주는 존재(프로그램)이라고 생각하시면 되구요. 원래 farm(농장) + er을 붙여서 farmer는 농장일하는사람 = 농부를 뜻하듯이 compile을 해주는 주체를 compiler라고 부릅니다.
컴파일한다는 것은 코드를 작성하고 컴퓨터가 이해할 수 있는 기계어로 바꿔주는 역할이 컴파일입니다.
번역가가 영어를 우리나라 말로 바꿔주듯이 컴파일러도 프로그래밍 언어를 기계어로 바꿔주는 역할을 합니다.
.......................................
인간이 사용하는 언어 및 프로그래밍언어(c, 자바 등)를 자연어라고 합니다. 컴퓨터는 자연어를 알지못하죠. 컴퓨터가 알수있는 기계어 또는 어셈블리어(0과1로이루어진)로 변환하기위해선 컴파일이라는 작업을 거쳐야합니다. 그 컴파일로 변환해주는 녀석을 컴파일러라고 합니다.
이는 c언어뿐만 아니고 다른 고급언어에도 컴파일러가 탑재 되어 있습니다.
컴파일은 사람이작성한코드를 특정 머신에서 실행시키기 용이한 코드 만드는 과정이라 생각하시면되고,
(실 정의:원시 코드에서 목적 코드로 옮기는 과정)
이러한 동작을 해주는 프로그램을 컴파일러라고 합니다.
컴파일러와 구분되는 개념으로는 소스 프로그램을 읽어서 즉시 결과를 출력하는 인터프리터가 있습니다.
우리가 프로그램(코딩)을 짜기 위해서 사용하는 문법은..IF문 이나 함수같은것..
컴퓨터가 이해를 할 수 없습니다. 사람이 쉽게 쓰고 이해하기 위해서 만든 문법이기 때문이죠.
그래서 우리가 각 언어의 문법에 맞춰서 작성한 코드를 컴퓨터가 이해할 수 있는기계어로 바꿔야 하는데..
이 과정을 컴파일 한다라고 표현합니다.
인간이 이해 할 수 있는 코드 -> 기계가 이해 할 수 있는 코드(기계어)로 바꾸는것
이 컴파일 을 하는 도구를 컴파일러 라고 합니다. 당연한 얘기지만 프로그래밍 언어 마다 컴파일러는 다르겠죠?
기계는 0, 1 이 두개의 이진수만 해석할 수 있지만.. 우리가 사용하는 언어는 자바, C, 파이썬 등등 종류가 다르기 때문에 그 종류에 맞는 컴파일러도 제각각 입니다.
한국어와 영어처럼 언어와 문법이 다르기 때문에 컴파일러도 종류마다 다르게 있습니다. ^^
컴파일은 쉽게 말해서 사용자가 입력한 언어를 컴퓨터가 알아들을 수 있도록 변환해주는 작업이라고 생각하시면 됩니다.
C 뿐 아니라 자바나 파이썬 등 모든 컴퓨터 언어는 개발자가 문법에 맞게 코딩하지만 그 자체로는 컴퓨터가 인식할 수 없습니다.
그래서 컴파일이란 작업을 거쳐서 컴퓨터가 인식할 수 있게 변환해주고 동작하게 됩니다.
컴파일러는 그 컴파일을 해주는 번역기 같은 것이라고 생각하시면 됩니다
컴파일이란 어떤 언어의 코드를 다른 언어로 바꿔주는 과정입니다. 예를들어 C++, JAVA 등의 코드를 컴퓨터가 인식할 수 있는 기계어로 바꿔주는 것입니다. 사전적 의미는 엮다, 편집[편찬]하다라는 뜻으로 소스코드와 기타 라이브러리 등을 하나로 엮어서 결과물을 만들어 낸다고 이해하면 될 듯 합니다.
컴파일러를 엄밀히 말하자면, 어떤 프로그래밍 언어로 쓰여진 소스 파일을 다른 언어로 바꾸어주는 번역기 인 셈입니다.C언어로 개발을 해서 프로그램을 만드셨다면 그걸 실행하기위한 파일을 생성 해주셔야 합니다..
C언어의 경우 일반적으로 DLL 파일이 될 것 같은데요. 자바의 경우 jar 파일일 것이고요..
개발한 언어를 실행할 수 있는 파일로 만들어주는걸 컴파일, 컴파일을 해주는 툴을 컴파일러라고 합니다.^^
안녕하세요
컴파일과 컴파일러의 차이점이 무엇인지 궁금하셔서 질문을 해주셨네요
컴파일 = 원시언어 즉 프로그래머가 작성한 소스형태로 된 상태를 목적언어 ( 컴퓨터가 실행 할 수 있는 형태)로 번역하는 과정을 이야기 합니다.
컴파일러 = 고급언어로 작성된 원시 프로그램을 입력으로 받아 기계어로 된 목적 프로그램을 출력하기 위하여 사용하는 언어 번역 프로그램입니다.
안녕하세요 질문자님 ^^
컴파일은
사람이 알아보고 쓰기 좋게 쓰인 C 언어로 개발자가 작성한 코드가 실제로 돌아가는 바이너리 코드나 어셈블리어 등
컴퓨터가 실제로 이해하고 사용하기 좋은 코드로 변환되는것을 얘기합니다.
컴파일러는
위에 기술한 컴파일이라는 행위를 대신 해주는 프로그램을 얘기합니다.
한마디로 컴파일러를 사용하여 C 언어를 컴파일하는것입니다.
안녕하세요
컴파일러는 c언어로 작성된 코드를 컴퓨터가 이해할수있는
기계어로 변경하는 작업을하는 통역기라 보시면 될것같습니다
그리고 이 통역하는 과정을 컴파일이라 이해하시면 편할겁니다.
통역기 역할을하는 컴파일러의 종류론
터보c , 비쥬얼c++ 등이 있습니다
도움됐으면 좋겠습니다
감사합니다