과학

C언어를 배워보자, -번외편, 프로그램이 만들어지는 과정 (노잼, 노전문)

 

오랫만이다 게이들아.

집안에 여러가지 일이 생겨서 한동안 컴퓨터를 못 할거 같고, 앞으로도 글같은거 쓸 분위기가 못될거 같아서

글쓰기 시작한지 일주일 만에 번외편 올려놓고 한동안 잠수탈 예정이다. Sorry

 

C언어를 배워보자 글을 쓰기 시작하면서 알게된 것이

참 수많은 종류의 프로그래밍 언어가 있구나 하는 거였는데,

프로그래밍 언어의 종류가 다양하고 여러가지 기능은 틀리지만, 결국 프로그램으로 만들어지는 과정은 다 거기서 거기인것 같더라.

그래서 급하게 쓸 번외편으로 어울리도록

여러가지 인터넷에 흩어져 잇는 프로그래밍 과정을 하나하나 주워모아서 읽기 쉽게 정리해놓은 글을 써본다.

 

글을 써보고 알게 되었지만, 개드립에는 나보다 훌륭한(랄까 아직 나는 비기너즈클레스)프로그래머도 많은거 같아서, 항상 글을 쓸때마다 긴장되고,

혹시나 내가 쓴 글이 틀렸다면 그 사람들의 입장에서 어떻게 보일까라는 불안감이 적잖아 있다.

But 구더기 무섭다고 장을 담구지 않을 수도 없는 노릇이고

함정카드 무섭다고 몬스터소환을 안할 수도 없는 노릇이고

악플 무서워서 글을 안쓸 수도 없는 노릇이므로

약간의 용기를 내 머릿속에 첨가해서 글을 쓰기 시작함(현재 시간 20 : 51)

 

먼저 프로그램이 만들어 지는 과정을 알기 위해서는 간단한 용어를 알아햐 한다.

 

1. 프로그래밍언어

2. 컴파일과 컴파일러

3. 링크

 

1번 프로그래밍언어는 내가 1편에서 언급을 했으므로 여기선 생략한다. ( 혹시나 링크가 필요하다면 http://www.dogdrip.net/37310382)

 

2. 컴파일(Compile)과 컴파일러(Compiler).

 

프로그래밍을 하는데 가장 기본적인것은 역시 프로그래밍언어라고 나는 생각한다.

그래서 우리는 프로그래밍언어를 공부함으로서 이것을 익힐 수 있지.

하지만 애석하게도 정작 컴퓨터는 프로그래밍언어를 전혀 할 수 없고 2진법으로 이루어진 전자언어밖에 할 줄 모른다.

그럼 우리가 프로그래밍언어를 공부하는 것이 헛고생이지 않을까?

No, 그래서 컴파일이 존재한다.

컴파일은 전자언어와 프로그래밍언어 둘다 가능하다. 그래서 우리가 프로그래밍언어로서 프로그램을 작성하면 그것을 전자언어로 해석해서 컴퓨터로 전달해 주는 과정을 컴파일이라고 한다.

컴파일러는?

컴파일(Compile) + 사람(er) 이라고 해서 컴파일러다.

가르치는(Teach) + 사람(er) 이 Teacher인것 처럼.어떤가 참 쉽지 않은가? 프로그래밍언어도 이만큼 쉽다면 얼마나 좋을까, 하하하

 

하지만 프로그램을 작성하는건 사람이고 사람이 100% 완벽할 수 없다.

복잡한 프로그램을 작성하다 보면 오타나 잘못된 입력이 생길 수 있다.

그럴때는 컴파일러는 언어를 컴파일 하지 못하고 에러를 발생시킨다.

보통 프로그램 작성 프로그램(프로그램을 작성하는 프로그램. 아 뭐야 이상해 이거)에서는 컴파일 결과창에서 어느 부분에서 오류가 생겼는지

상세하게 오류코드와 함께 알려주기 때문에 직접 머리를 쥐어짜서 해결하든 도움말을 열든 인터넷을 검색하든 하여서 모든 오류를 해결하면 비로서

컴파일이 완료된다.

 

3. 링크

 

하지만 멍청하기 짝이 없는 컴퓨터는 자기가 할 줄 아는 전자언어로 번역을 해서 같다 바쳐도 실행을 할 능력이 없다.

그래서 어느 컴퓨터든 설치되어 있는 운영체제로 컴파일된 프로그램을 실행파일로 만들어 주는데 이것을 링크라고 한다.

어때요, 참 쉽죠?

 

그러니까 간략하게 요약하면

 

프로그래밍의 작성과 실행 까지의 과정

 

 프로그램의 작성 >

 컴파일

If) 오류발생 > 오류해결 >다시 컴파일(이 과정을 모든 오류가 해결되어 컴파일이 완료될 때 까지 반복한다)

컴파일 완료

링크

실행파일 실행

 

이정도면 나름 이해하기 쉽게 프로그램이 만들어지는 과정을 설명한 것 같다.

 

 

마지막으로,

위에서도 언급했지만, 집안 사정으로 인해서 잠시 게시글을 올리는건 중단하게 되었다.(늦어도 추석연휴가 끝날때 쯤이면 3편을 올릴 수 있도록 하겠다)

 

읽판에서 C언어 관련 글을 쓰다보니 생각보다 개드립에 프로그래밍관련 전공을 하는 사람이 많은것 같다.

그런 사람들에 비하면 나는 아직 새발의 발톱때만도 못한 비기너즈겠지만,

나의 글을 보고 응원해주는 몇몇 선배들의 조언과 충고, 지적 정말 고맙다.

앞으로도 잘 부탁한다.

(설마 이걸로 좆목밴을 당하지는 않겠지...?)

 

 

 

9개의 댓글

같은 비기너즈 컴쟁이로서 응원할껰ㅋ
0
2013.09.16
배운걸 복습삼아 정리해서 올리면 너한테도 도움이 될거야. 잘못 안거나 모르는 내용도 더 알 수 있고. 힘내라.
0
2013.09.16
한번 쭉 올려봐 막히는 부분이 있으면 알려줄께
모르는게 부끄러운게 아니야
모르는걸 배우려고 하지 않는게 부끄러운거지~
0
2013.09.16
좆목밴
0
2013.09.16
컴파일(이 단계에서 코드최적화) -> o나 obj파일 -> 링크되서 a.out이나 exe
0
2013.09.16
난 정말 내가 한심해 뵈기도 하는게 항상 C언어 공부해야지 해야지 하면서도 만날 놀거나 공부만 하고 C언어는 왠지 모르게 피하는 느낌이 많다 진로를 그쪽으로 정했는데 어떡하나 ㅅㅂ
0
2013.10.03
@로컬
미투!!힘내!
0
2013.09.16
진로를 이쪽으로 결정한 잉간으로써 도움될 것 같다
0
2013.09.18
메모리 구조도 중요하다고 생각되는데
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
563 [과학] 경계선 지능이 700만 있다는 기사들에 대해 34 LinkedList 12 2024.04.14
562 [과학] 번역)새들은 왜 알을 많이 낳는가? - 후투티의 형제살해 습성... 7 리보솜 3 2024.03.23
561 [과학] 학계와 AI, 그리고 Bitter Lesson (쓰라린 교훈) 26 elomn 35 2024.02.17
560 [과학] 지구의 속삭임, 골든 레코드의 우주 9 Archaea 10 2024.02.16
559 [과학] 잔혹한 과학실험 이야기 <1> 절망의 구덩이 19 개드립하면안됨 37 2024.02.15
558 [과학] 스트레스를 받으면 술이 땡기는 이유 12 동식 16 2024.02.10
557 [과학] 지능은 모계유전이 아니다. 40 울릉특별자치도 35 2024.01.26
556 [과학] 진화를 생각할 때 고려할 것들 23 날씨가나쁘잖아 12 2024.01.17
555 [과학] 학문적(과학적) 접근과 유사 진화심리"학" 26 날씨가나쁘잖아 19 2024.01.15
554 [과학] 호모 사피엔스의 야릇한 은폐된 배란에 대한 남녀 학자의 다... 14 개드립하면안됨 15 2023.12.29
553 [과학] 김영하의 작별인사를 읽고 느낀 점 (스포있음) 21 장문주의 2 2023.11.28
552 [과학] 제4회 포스텍 SF 어워드 공모전 ( SF 단편소설 / SF 미니픽션 ) 2 따스땅 1 2023.11.25
551 [과학] 펌) CRISPR 유전자 가위 치료제 "최초" 승인 12 리보솜 7 2023.11.25
550 [과학] 러시아는 기술산업을 어떻게 파괴시켰는가(펌) 9 세기노비는역사비... 15 2023.11.18
549 [과학] 고양이에 의한 섬생태계 교란과 생물 종의 절멸 (펌) 2 힘들힘들고 6 2023.11.16
548 [과학] 번역) 알츠하이머병 유전자는 어떻게 살아남았는가? 12 리보솜 10 2023.11.15
547 [과학] 『우영우』의 자폐 스펙트럼 장애 개념이 왜곡인 이유 (펌) 47 힘들힘들고 10 2023.11.12
546 [과학] 흑수저 문과충 출신 구글 취직하는 파이썬 특강 -1 14 지방흡입기 11 2023.09.27
545 [과학] 국가별 당뇨 유병율 이거 뭐가 바뀐건지 아는사람? 8 LAMBDA 1 2023.09.27
544 [과학] 물샤워 ㅇㅈㄹ 하는 놈들 봐라 171 철동이 48 2023.09.23