Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Kotlin for Java Developers
- AutoConfiguration
- Immutable
- 메이븐
- FunctionalInterfaces
- Spring
- springwebmvc
- String
- 토비의스프링3.1
- 링킹
- 빌드툴
- hibernate
- ORM
- beanfactory
- springboot
- DesignPattern
- 자바
- 토비의스프링
- java
- DispatcherServlet
- exception
- 컴퓨터시스템
- 링커
- JPA
- 프록시
- ApplicationContext
- lambda
- 클린코드
- gradle
- IOC
Archives
- Today
- Total
목록컴파일러 (1)
엔지니어로 가는 길
(C언어)프로그램이 실행되는 과정을 살펴보자
컴퓨터가 C언어를 이해할 수 있을까? 요즘은 프로그램을 소스 코드로 작성한다. 소스 코드는 인간이 이해할 수 있는 언어로 작성한 코드이다. 시스템은 소스 코드를 이해할 수 없다. 시스템은 기계어만 이해할 수 있다. 따라서 누군가 소스 코드를 기계어로 번역해주어야 한다. (C언어의 경우) 컴파일러와 어셈블러가 번역 과정을 맡는다. 먼저 컴파일러가 소스 코드를 어셈블리어로 번역해놓고 나면, 어셈블러가 어셈블리어를 기계어로 번역한다. 소스 코드를 한 번에 기계어로 번역해주지 않고 왜 굳이 두 단계로 나누었을까라는 의문이 들었다. 하지만 만들어진 순서를 생각해보면 당연한 결과인 것 같다. 프로그래밍 언어의 시작부터 사람이 이해할 수 있는 언어가 있었던 것이 아니라, 처음엔 기계어에서부터 시작했다. 기계어는 0과..
프로그래밍/전공서적
2020. 8. 23. 12:25