*컴퓨터의 구성
컴퓨터 = 하드웨어+소프트웨어
하드웨어 : 컴퓨터를 구성하고 있는 전자 전기 회로, 전기 기계 등 물리적 기계장치
소프트웨어 : 하드웨어를 제어하여 많은 일들을 효과적으로 수행하여 사람들이 편리하게 사용할 수 있도록 해주는 프로그램
*하드웨어의 5대 장치 : 입력 장치, 제어 장치, 기억 장치, 연산 장치, 출력 장치
*소프트웨어 : 저장장치에 저장된 특정한 목적의 하나 또는 다수의 컴퓨터 프로그램
or 컴퓨터 하드웨어에 직접 명령어를 주거나 다른 소프트웨어에 입력을 제공
소프트웨어 = 시스템 소프트웨어 + 응용 소프트웨어
시스템 소프트웨어 : 컴퓨터 시스템의 개별 하드웨어 요소들을 직접 제어, 통합, 관리하여
응용 소프트웨어를 실행하기 위한 플랫폼 제공
or운영체제, 장치 드라이버, 컴파일러, 링커, 유틸리티 등
응용 소프트웨어 : 사용자가 원하는 특정 작업을 할 때 사용하는 소프트웨어
or워드프로세서, 통신용 프로그램, 게임 프로그램, 그래픽 프로그램, 통계
처리용 프로그램, 데이터베이스 프로그램 등
*프로그램
컴퓨터에게 원하는 동작을 수행하도록 지시하는 명령어들의 집합
프로그램을 만드는 과정 : 프로그래밍
프로그램 작성에 사용되는 언어 : 프로그래밍 언어
컴퓨터가 처리할 일들을 순서에 맞게 나열해 놓은 것을 의미
프로그램 vs 소프트웨어
프로그램 : 컴파일된 결과물 및 소스 코드
소프트웨어 : 프로그램뿐만 아니라 CD, 설명서, 제품 포장 등 패키지 전체
일반적으로 소프트웨어는 소스코드 및 관련 문서를 포함
*프로그래밍 언어 종류 및 특성
기계어와 어셈블리어
기계어 : 컴퓨터의 전기적 회로에 의해 직접적으로 실행되는 언어로 0과 1로 표시
언어 자체가 복잡하고 어렵기 때문에 프로그래밍 시간이 많이 걸리고 오류 발생
가능성이 높음
어셈블리어 : 기계어와 1대 1로 대응시켜 만든 기호 언어로, 프로그램의 수행시간이 빠르고 주기억장치를 매우 효율적으로 이용
특정 기종의 어셈블리어에 의해 작성된 프로그램은 다른 기종의 컴퓨터에서 처리될 수 없음
컴퓨터 개발 초기에 사용된 프로그래밍 언어로, 주로 시스템 프로
그래밍에 사용
고급 언어
사람이 쓰는 자연어에 가까운 언어로 컴퓨터를 사용하고자 만들어진 언어
로서 종류가 매우 다양
고급 언어 종류
절차지향 언어 : FORT- RAN, COBOL, PASCAL, C, BASIC 등
객체지향 언어 : Smalltalk, C++, Visual C++, Java 등
비절차 언어 : SQL, QBE 등
함수 언어 : LISP, Prolog 등
*프로그램 개발 과정
프로그래밍 언어를 사용하여 프로그램을 개발할 때 필요한 과정
해결할 문제를 이해한다 : 요구 사항 분석
문제 해결 절차를 고안한다 : 알고리즘 개발 (아키텍처 설계 및 상세 설계)
문제 해결 절차를 선정된 언어로 작성한다 : 프로그램 코딩
작성된 프로그램을 번역한다 : 컴파일과 링크
프로그램을 실행하여 결과를 확인한다 : 프로그램 테스트와 수정
*프로그램 작성 준비와 코딩
해결하려는 문제를 충분히 분석하여 이해한 다음에 해결 절차를
마련
문제가 주어지면, 우선 주어진 자료와 원하는 결과를 파악
구체적인 문제 해결 절차를 마련(순서도, 의사코드)
작성된 의사 코드에 따라 하나씩 C 언어로 표현 : 코딩
예) 임의의 반지름에 대하여 원의 면적을 구하는 문제
*프로그램의 컴파일과 링킹
프로그래밍 언어로 작성된 프로그램은 프로그램 개발 도구의 편
집기를 사용하여 텍스트 파일 형태로 저장
작성된 프로그램은 컴파일과 링크 과정을 거쳐서 컴퓨터에서 동
작되는 실행 파일로 만들어짐
*프로그램 실행과 테스트
컴파일과 링크 단계를 거쳐서 생성된 실행 파일은 컴퓨터에서
실행
실행 결과가 원하는 결과와 일치
여러 가지 입력 자료에 대하여 정확한 결과가 나오는지를
확인하는 과정 : 프로그램 테스트
이 과정에서 오류가 발생하면 다시 소스 프로그램을 수정하고,
컴파일과 링크 과정을 수행
댓글 없음:
댓글 쓰기