Gallery view
Search
폰노이만 아키텍쳐 (von Neumann architecture)
•
과거의 컴퓨터
ENIAC
기계식으로 사람을 모든 것을 처리
(배선 변경, 스위치 조작, 천공카드 등)
•
1945년에 수학자 존 포이노만이 컴퓨터 모델 제안
◦
프로그램 내장식 컴퓨터
stored program computer
→ 컴퓨터 내부에서 프로그램과 데이터를 저장 / 처리
•
폰노이만 아키텍처의 구성 요소
◦
CPU : 명령어를 해석, 데이터 처리 → 함수 등
◦
메모리 : 명령어와 데이터 저장 → 포인터
◦
입출력장치 : 데이터 입출력
컴퓨터 구조
•
프로그래밍 → 순서 → 나열? (논리)
개념적인 나열을 하기 위한 방법?
•
언어
기계어, C언어
•
기계어?
CPU가 직접 실행하는 비트 단위 언어(0, 1)
•
기계어의 단점
◦
명령어를 사용하기 어려움
◦
수정이 어려움
00036 8b f4
00038 8b 45 f8
0003b 50
0003c 68 00 00
000051 ff 15 00
•
기계어의 단점을 보완
◦
인간의 언어와 유사한 언어사용
#include <stdio.h>
int main(){
int i;
for(i = 0; i < 3; i++){
printf("%d \n", i);
}
return 0;
}
•
언어의 종류
C언어 → C++언어(객체지향) → Java 언어 등
프로그래밍 표현
작성한 원시 소스의 코드 변환
•
컴파일러 compiler
◦
고급 언어로 작성된 코드를 컴파일 compile 과정을 통해 목적코드(기계어, *.obj)로 변환하는 프로그램
◦
문법적인 오류 발견 (error, warning)
•
링커 linker
◦
목적코드와 소스 코드 안에 사용한 함수 코드(미리 만들어논 조각프로그램)를 라이브러리와 연결하는 역할
◦
실행 파일 *.exe 을 생성 → 프로그램 완성
원시 코드에서부터 실행파일까지 과정
•
디버깅 (debugging)
◦
프로그램이 오류 부분을 찾아내고 수정하는 작업
•
실행파일을 만드는 과정
◦
.c파일을 .obj파일로 만들기 위해선 컴파일을 해야하는데 컴파일을 하는 과정중 error발생시 코드를 수정해야한다.
◦
그리고 그 컴파일을 완료한 .obj파일을 링크를 하는 과정에서도 error가 발생하면 코드를 또 수정하고 다시 컴파일하고 다시 링크를 해야한다.
위의 일련의 과정을 보고 "디버깅한다." 라고 한다.
프로그래밍의 진행과정
C언어 키워드
•
총 32개 중 28개 사용 (20개가 주 키워드 + 8개는 가끔)
auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while
◦
빨간색은 보편적으로 거의 사용을 안한다고 생각하면 된다.
◦
노란색은 많이는 사용하지 않지만 가끔 필요시에 사용을 한다.
◦
일반 검정색의 키워드는 많이많이 사용하는 키워드들이다.
•
사실상 C언어를 배운다는 것은 위의 키워드를 배우는 것 과 같다.
C언어 기본 구조
•
기본 구조에는 규칙이 있다
•
프로그램의 시작 or 진입점 or 시작 코드를 모아둔 곳
-main()
main : 중요한, 중심이 되는, 주된
프로젝트 파일 중에 오직 하나만 존재하는 코드이다.
main 구조
C언어의 시작
상념과 사려, 사고 이 세가지는 모두 의지의 별명인데 사고가 비교적 중요하고 상념과 사려는 비교적 가벼운 것이다.
주자는 감정은 배나 수레와 같고 의지는 사람의 그 배와 수레를 부리는 것과 같다.
