본문 바로가기

UNIX_LINUX_C_C++

Programming from the Ground Up

Programming from the Ground Up

윤상배

고친 과정
고침 0.82004년 2월 09일 19시
최초 문서작성

차례
1. 소개
1.1. 프로그래밍의 세계로
1.2. 사용하는 도구
2. 컴퓨터 구조
2.1. 컴퓨터의 메모리 구조
2.2. CPU
2.3. 몇 가지 용어들
2.4. interpreting Memory
2.5. 데이터 접근 방법
3. 첫번째 프로그램 만들기
3.1. Entering in the Program
3.2. 어셈블리 프로그램의 개요
3.3. Planning the Program
3.4. 최대 숫자 찾기
3.5. Addressing mode
4. 함수에 대해서 다루기
4.1. 복잡한 프로그램 다루기
4.2. 함수 만들기
4.3. C calling convention을 이용한 어셈블리어 함수설명
4.4. 함수 예제
4.5. 재귀 함수
5. 파일 다루기
5.1. 유닉스 파일 소개
5.2. 버퍼와 .bss
5.3. 표준파일과 특수 파일들
5.4. 프로그램에서 파일의 이용
5.5. 복습
6. 레코드 단위의 읽기와 쓰기
6.1. 레코드 쓰기
6.2. 레코드 읽기
6.3. 레코드 수정
6.4. 마치며
6.4.1. 복습
6.4.2. 연습문제
7. 견고한 프로그램 작성하기
7.1. 왜 시간이 지연되는가 ?
7.2. 견고한 프로그램을 만들기 위한 몇가지 팁
7.2.1. 사용자 테스트
7.2.2. 데이터 테스트
7.2.3. 모듈 테스트
7.3. 에러 핸들링의 기본
7.3.1. 모든 것은 에러코드를 가진다.
7.4. 견고한 프로그램으로 만들기
8. 라이브러리를 통한 함수 공유
8.1. 공유 라이브러리의 이용
9. 메모리에 대하여
9.1. 컴퓨터는 메모리를 어떻게 바라보는가
9.2. Instruction Pointer
9.3. 리눅스 프로그램에서의 메모리 구조
9.4. Every Memory Address is Lie
9.5. Getting More Memory
9.6. 메모리 관리
9.7. 변수와 상수들
9.8. allocate_init 함수
9.9. allocate 함수
9.10. deallocate 함수
9.11. 성능 및 다른 몇가지 문제들
9.12. Allocator 사용하기
9.13. 더 많은 정보들
9.14. 복습
10. 최적화
10.1. 최적화가 필요한 시점
10.2. 어디를 최적화 할 것인가
10.3. 지역 최적화 방안
10.4. 전역 최적화 방안
10.5. 복습
11. Appendix A. GUI 프로그래밍
11.1. GNOME 라이브러리
11.2. 다양한 언어를 이용한 간단한 GNOME 프로그램 작성
12. Appendix B. Common x86 Instructions
12.1. Data Transfer Instructions
12.2. Integer Instructions
13. Appendix C. 주요 시스템 콜들
14. Appendix D. ASCII 코드 표

이 문서는 ProgrammingGroundUp의 번역 문서다. 계획으로는 하루 한시간씩을 번역에 투자할 생각이지만 생각처럼 잘 될런지는 모르겠다. 누군가 참여하는 사람이 있다면 훨씬 진행이 빨라질 것이라고 생각된다.

번역은 매우 느슨하게 이루어질 것이다. 즉 필요없다고 생각 되는 부분은 과감히 생략할 수 있으며, 비슷한 다른 말론 바뀔 수 있으며 추가 될 수도 있다. 번역 순서역시 각장의 순서를 따르지는 않을 수도 있다(관심있는 부분부터 번역이 이루어질 것이다).