제이오캐드스터디카페

728x90

1 장 언어의 설계

1. 구조와 연산

 1) 프로그램 언어의 정의

정 의

  기계가 읽을 수 있고 사람이 읽을 수 있는 형식으로 계산을 기술하는 표현 체계

장 점

  󰋯현재 사용하는 언어를 더욱 잘 이해하게 됨

  󰋯유용한 프로그래밍을 구사할 수 있는 능력을 증대시킴

  󰋯새로운 프로그래밍 언어를 배우기 쉬움

언어 정의 구성

언어 구문

  언어의 표면적인 구조만을 정의

언어 의미론

  프로그램의 실행 시 어떠한 일이 일어나는가를 기술

   

 

 2) 프로그램 수행 방식에 의한 프로그램 언어의 구분

명령형 언어

 󰋯절차적 언어 : 명령의 순차적 실행, 기억 장소를 표시하는 변수의 사용, 변수의 값을 변경하기

                 위한 배정문의 사용 등을 하는 언어 - 대부분의 언어가 명령형 언어임

 󰋯단점 : 병렬 처리 프로그램에 부적합, 프로그램 과정이 인간의 사고와 차이가 많음

함수형 언어

 󰋯응용형 언어 : 함수의 평가와 함수를 주어진 값에 적용하는 것을 기본으로 한 언어

논리형 언어

 󰋯선언적 언어 : 기호 논리학에 근거를 두고 있는 언어

객체 지향 언어

 󰋯객체에 기반을 두고 있는 언어

   

 

 3) 프로그램 언어의 발전

1950년대

  󰋯최초의 프로그래밍 언어              󰋯FORTRAN, COBOL, ALGOL 60, LISP, APL

1960년대

  󰋯프로그래밍 언어의 폭증              󰋯PL/I, ALGOL 68, SNOBOL, Simula 67, BASIC

1970년대

  󰋯간결성, 추상화, 연구 사항            󰋯PASCAL, C, CLU, Euclid, Mesa

1980년대

  󰋯통합과 새로운 방향                  󰋯Ada, Modula-2, Prolog, Smalltalk

   

 

 4) 프로그래밍 언어의 세대 구분

1세대 언어

  󰋯기호 어셈블리 언어       󰋯수치 과학용 언어(FORTRAN I, ALGOL 58)

  󰋯자료 처리용 언어         󰋯리스트 처리용 언어(IPL 5)

2세대 언어

  󰋯프로그램 언어의 기준이 되는 프로그램 언어가 개발된 시기

  󰋯FORTRAN II, ALGOL 60, COBOL, LISP)

3세대 언어

  󰋯1, 2세대에서 등장한 프로그램 언어 + 수많은 프로그램 언어 등장

  󰋯PL/I, ALGOL 68, SNOBOL 4, APL, PASCAL, Ada, BASIC

4세대 언어

  󰋯프로그램의 생산성을 증가시키는 것을 목적으로 함

  󰋯Delphi, Visual Basic, Power Builder, 스프레드시트, 데이터베이스 관리 시스템

   

 

 5) 프로그램 언어 설계 시 고려사항

    󰋯개념의 명료성      󰋯문제 해결에 대한 적합성  󰋯구문의 명료성        󰋯프로그램의 추상화 지원   󰋯표기의 일치성

    󰋯프로그램의 호환성  󰋯프로그램 언어의 효율성   󰋯개발 환경의 편의성   󰋯프로그램 검증의 용이성

 

 6) 컴퓨터의 구조와 프로그램 언어 설계 시 고려사항

기본 자료

 󰋯컴퓨터가 처리할 수 있는 자료의 종류와 구조

 󰋯기본 연산과 관련되어 프로그램 언어가 어떤 형태의 자료 구조를 제공할지 결정하는데 중요한 요소

기본 연산

 󰋯기계어에 존재하는 명령어와 대응되는 연산

 󰋯종류 : 수치 연산, 메모리 접근 연산, 입출력 연산, 순서 제어 연산, 조건 검사 연산

 󰋯기본 자료와 관련되어 프로그램 언어 설계 시 중요한 요소

순서 제어

 󰋯프로그램의 실행 순서를 결정      󰋯프로그램 언어의 순서제어와 관련된 사항 설계 시 고려

   

 

 

자료 제어

 󰋯명령어의 피연산자를 지정하는 방식 󰋯프로그램 언어의 변수와 관련된 사항 설계 시 고려

기억 장소 관리

 프로그램 언어 설계 시 변수의 선언 방법, 프로그램 코드 작성과 관련된 내용을 결정하는데 고려

외부와의 인터페이스

 입출력 제어와 관련된 다양한 내용을 언어설계 시 컴퓨터 외부 인터페이스 제공 방법에 따라 고려

   

 

2. 프로그래밍 언어 구현 기법

 1) 번역 기법

    (1) 번역기의 개요

정 의

  한 프로그래밍 언어를 입력받아 같은 의미를 갖는 다른 프로그래밍 언어로 된 프로그램으로 변환하는 시스템 프로그램

용어 정의

  󰋯원시 프로그램 : 입력되는 프로그램           󰋯목적 프로그램 : 변환된 프로그램

       

    (2) 번역기의 종류

컴파일러(compiler)

 고급 언어가 입력으로 들어와서 기계어나 어셈블리어로 출력되도록 번역하는 번역기

어셈블러(assembler)

 어셈블러 언어를 입력받아 해당 기계의 기계어로 번역하는 번역기

크로스(cross)컴파일러

 원시프로그램을 컴파일러가 수행되고 있는 기계의 기계어로 번역하는 것 아니고 다른 기종의 기계어로 번역

프리프로세서 (preprocessor)

  󰋯언어를 확장 시켜줌           󰋯조건부 컴파일 기능을 수행

로더(loader)

 재배치 가능한 코드를 재배치 주소로 변경하여 명령어와 데이터를 기억 장소에 적재

링커(linker)

 재배치 가능한 기계 코드의 여러 파일을 한 프로그램으로 만듦

     

 

 2) 인터프리터 기법

정 의

  고급 언어로 된 프로그램을 자료로 읽어 들여서 기계어 수행한 동일한 알고리즘으로 그 프로그램의 각 문장을

  디코딩하고 실행시킴으로써 이 고급 언어를 시뮬레이션하는 것

방 법

 󰋯고급 언어 기계를 다른 기계에서 실행되는 소프트웨어로 시뮬레이션하여 구성 󰋯시뮬레이션 기법이라고도 함

   

 

 3) 번역기법과 인터프리터의 비교

 

 컴파일러 언어(번역 기법)

인터프리터 언어(시뮬레이션 기법)

입력 자료

  고급 언어로 된 프로그램

  고급 언어로 된 프로그램

출력 자료

  입력 프로그램과 동일한 목적 언어로 된 프로그램

  직접 입력 프로그램을 실행

장 점

  많은 횟수로 반복 처리되는 프로그램을 실행할 때  

  매우 빠르게 프로그램 실행 가능

  기억 장소를 추가로 필요로 하지 않음

단 점

  큰 기억 장치를 요구

  (입출력 명령문들은 더 큰 기억 장치를 요구)

  실행되는 동안에 디코딩하는 시간을 매우 많이

  요구하는 경우가 발생

활 용

  실행시간의 효율을 중시하는 프로그래밍 언어에서 사용

  사용자의 적응성을 중시하는 언어에서 사용

언 어

  Fortran, Algol, PL/I, Pascal, Cobol, Ada

  Lisp, Snobol 4, APL, Prolog

   

 

3. 가상 컴퓨터(Virtual Machine)

정 의

  물리적으로 실제 존재하는 컴퓨터가 아니라 다양한 목적을 위해 개념적으로 존재하는 가상의 컴퓨터

구 조

 󰋯하드웨어 + 소프트웨어               󰋯구조 및 논리는 이를 시뮬레이션하는 프로그램에 의해 구현

 󰋯구조와 논리를 구현한 프로그램이 수행되는 컴퓨터는 물리적으로 실제 존재하는 컴퓨터

목 적

 󰋯인터프리터에 의해  󰋯컴파일러의 중간 코드 생성을 위해   󰋯기계 독립적인 프로그램 언어를 만들기 위해

설계 시

고려사항

 󰋯가상 컴퓨터에서 변수의 크기  󰋯가상 컴퓨터에서 사용하는 레지스터의 집합  󰋯기억장소(memory)의 구조

 󰋯함수 호출시 매개 변수 전달 방식과 관련된 스택의 동작 방식 정의   󰋯스택의 구조와 관련 레지스터 정의  

 󰋯지역 변수 선언의 처리와 관련된 스택의 동작 방식 정의                  󰋯함수의 변환값 전달방식 정의

 󰋯가상 컴퓨터에서 사용하는 데이터 정렬 방식 정의       󰋯가상 컴퓨터에서 지원하는 주소 지정 방식 정의

   

 

4. 바인딩

 1) 바인딩 개념

바인딩

 󰋯이름에 어떤 속성을 연결하는 과정

 󰋯프로그램의 기본단위에 이 기본단위가 선택할 수 있는 여러 가지 속성 중에서 일부를 선정하여

   결정해 주는 행위

바인딩 시간

  바인딩이 발생되는 시간

   

 

 2) 바인딩 시간의 종류

실행 시간

 󰋯실행시간에 이루어지는 바인딩 : 동적 바인딩

 󰋯모듈 시작시간 : 많은 프로그래밍 언어에서 중요한 바인딩들이 모듈 프로그램 실행시작 시간에 발생

                   형식 매개 변수와 실 매개 변수 간의 바인딩, 지역 변수들에 대한 기억장소 할당

 󰋯실행시간의 사용시점 : 프로그램을 실행하는 동안 사용시점에서 수시로 발생하는 바인딩

                         배정문에서 값을 변수에 바인딩하는 것

번역 시간

 󰋯중요한 바인딩 이루어짐                󰋯번역시간에 이루어지는 바인딩 : 정적 바인딩

 󰋯종류 : 변수의 형, 자료구조의 형과 크기, 레코드의 각 항목들의 형들을 확정하는 바인딩

언어 정의 시간

  프로그래밍 언어에서 허용되는 자료구조, 프로그램, 구조, 택일문 등에 관한 것은

  프로그래밍 언어를 설계하여 정의 내릴 때 이미 확정

언어 구현 시간

  각 데이터의 형이 기억장소에서 어떻게 표현되는지 결정

   

 

 3) 바인딩 시간의 중요성

    󰋯프로그래밍 언어들 간의 가장 중요하고 미묘한 대부분의 차이가 바인딩 시간의 차이에서 발생

    󰋯번역시간, 실행시간 바인딩의 장단점 : 효율성, 적응성의 상충된 이해관계

    󰋯실행의 효율성을 중시하는 언어 : FORTRAN, ALGOL, COBOL등의 컴파일러 언어

    󰋯적응성을 중시하는 언어 : Snobol 4, APL, Lisp의 인터프리터 언어

    󰋯PL/I : 효율성, 적응성을 모두 고려하여 설계하여 바인딩 시간 선택 가능

 

2 장 언어 번역

1. 구문

 1) 문자 집합

EBCDIC

  IBM 360 계열에 의해 처음 발표된 8bit 조합코드

ASCII

  ANSI에서 제안한 7bit 구성코드

예약어

정 의

  언어는 어휘를 구성하는데 있어 언어 또는 기호 형태의 문자 알파벳을 사용하는데

  이런 단어, 기호들은 특별한 의미를 가지고 있는 것

장 점

 󰋯프로그램을 좀더 읽기 쉽도록 해줌          󰋯오류 회복을 할 수 있도록 함

 󰋯컴파일러가 기호 테이블을 짧은 시간에 탐색하도록 함

단 점

 󰋯예약어의 수가 늘어나게 되면 많은 예약어들을 모두 기억할 수 없음

 󰋯기존의 언어를 새롭게 확장하면 예약어 확장이전에 사용했던 프로그램의 식별자와 중복될 수 있어

   프로그램 의미가 달라질 수 있음

   

 

 2) BNF 표기법 

 

  구문형식을 정의하는 가장 보편적인 기법

생성 규칙에

사용되는 정의

  󰋯BNF 표현    <compound-statement> ::= begin <statement-list> end

                 <statement-list> ::= <statement>|<statement-list>;<statement>

  󰋯왼쪽 : 정의될 대상(object),    오른쪽 : 그 대상에 대한 정의가 나타남

  󰋯(<>)로 묶여진 기호 : 논터미널 기호라고 함,  BNF 규율로 다시 정의될 대상

  󰋯(<>)로 묶이지 않은 기호 : 터미널 기호라고 함, 각 언어에서 사용되는 문자집합, 예약어가 있음

  󰋯특수기호 : 메타 기호라고 함,  언어를 표현하는데 사용

   

EBNF

  󰋯EBNF 표현 : <compound-statement> ::= begin <statement> {;<statement>} end

  󰋯보다 읽기 쉽고 간결한 표현시 사용

  󰋯반복되는 부분 : { } 로 표시,     선택적인 부분 :〔〕로 표시

  󰋯BNFEBNF로 표현함으로써 생기는 이점 : nonterminal의 개수를 줄일 수 있음

                                              간결하게 표현 가능

   

 

 3) 구문 도표

특 징

  󰋯형태가 순서도와 비슷함     󰋯같은 문법을 여러 형태의 구문 도표로 표현 가능

표현방법

  󰋯재 정의 대상 : 네모칸      󰋯terminal 기호 : , 타원         󰋯연결 : 지시선

   

 

 4) 파스 트리

정 의

  한 표현이 주어진 BNF에 의해 작성될 수 있는지 없는지를 확인하기 위해 검증하고자 작성하는 트리

특 징

  󰋯파스 트리 존재 : '주어진 BNF에 의하여 작성되었다'고 말함

  󰋯파스 트리 존재하지 않은 경우 : '주어진 BNF에 의해 작성될 수 없다'고 말함

   

 

2. 형식 언어

 1) 형식 언어의 구성 요소

개 념

  󰋯수학적 기호를 사용하여 정의한 언어    󰋯언어를 구성하는 알파벳으로 이루어진 스트링의 집합

구성 요소

알파벳

   언어를 구성하는 심벌들의 유한 집합

스트링

  󰋯일련의 유한 개의 알파벳으로 구성     󰋯스트링 길이 : 스트링을 구성하는 기호의 개수

  󰋯스트링 접속 연산자 : 스트링을 연속적으로 연결한 것

  󰋯스트링의 길이가 0인 스트링 : 공 스트링이라 함                    󰋯ε또는 λ로 표기

  󰋯T* : 알파벳 T에 대하여 empty 스트링을 포함하여 T에 속하는 심벌로 이루어질 수 있는

        모든 스트링의 집합

  󰋯T+ : T*에서 empty 스티링을 제외한 모든 스트링의 집합

언어

  특정한 알파벳으로 구성된 스트링의 집합

언어에 대한 연산

  󰋯합집합        󰋯접합 연산         󰋯클로저 연산

   

 

 2) 문법의 정의 및 형태

    (1) 형식 문법 : 형식 언어를 구성하고 있는 스트링에 관한 규칙을 수학적 기호를 사용하여 명시한 것

    (2) 언어 정의를 위한 기호들

명 칭

표기기호

의 미

시작기호 or

문장심벌

S

 󰋯생성 규칙의 시작 기호 󰋯논터미널 기호 집합에 속하나 다른 논터미널들과 구별하여 표기

생성 규칙

P

  문법 규칙들의 집합

논터미널

Vn

 󰋯문법에서 스트링을 생성하는데 사용되는 중간과정의 심벌 󰋯언어 구조를 정의하는데 사용

터미널

Vt

 󰋯알파벳이나 기호의 집합 󰋯마지막 단계에 생성된 문장은 모두 터미널 문자로 구성

       

 

 3) 문법의 분류

문법

언어

인식기

형태0문법

  순환적으로 열거할 수 있는 언어

  튜링 머신

형태1문법

  context-sensitive language

  페이프 오토마타

형태2문법

  문맥 자유 언어

  푸시다운 오토마타

형태3문법

  정규 언어

  유한 상태 기계

   

 

 4) 정규 언어

정 의

   토큰의 형태를 기술하는데 사용

표현 방법

정규 문법

 󰋯형식언어 중 가장 간단한 언어 󰋯어휘 분석 단계에서 토큰을 표현하고 인식하기 위해 사용

정규 표현

 󰋯정규 언어를 표현하는 수식    󰋯토큰을 인식하는 유한 오토마타를 구성하는데 사용

유한 오토마타

 정규식, 정규 문법에 의해 생성되는 스트링을 인식하는 가상적인 기계

   

 

 5) Context-free (문맥 자유) 문법

    (1) 장점  󰋯간단하고 이해하기 쉬움              󰋯표현된 문법으로부터 자동적으로 인식기를 구현 가능

              󰋯입력된 프로그램의 구조를 생성 규칙에 의해 분해할 수 있으므로 번역에 유용

    (2) 방법

유 도

 󰋯임의의 문장을 얻기 위해 시작 심벌로부터 반복적으로 생성 규칙을 적용해 가는 과정

 󰋯좌측 유도 : 가장 왼쪽에 있는 논터미널을 그 논터미널에 관한 생성 규칙을 적용하여 대치하는 것

 󰋯우측 유도 : 가장 오른쪽 논터미널을 그 논터미널에 관한 생성규칙을 적용하여 대치하여 유도하는 경우

유도트리

 󰋯문장이 유도되는 과정을 트리형태로 표현할 수 있는 것

 󰋯생성 규칙에 의해 적용되는 문장의 계층적 구조를 나타냄

모호성

 󰋯문법에 의해 생성되는 어떤 문장이 두 개 이상의 유도 트리를 가질 때

 󰋯문법이 모호해지는 원인 : 연산자의 우선순위와 결합 법칙을 고려하지 않은 경우

                            if else 수가 일치하지 않는 경우

       

 

3. 번역단계

 1) 컴파일러의 구조

전반부

 󰋯원시 프로그램을 분석하고 중간 코드를 생성하는 부분    󰋯각 언어당 하나씩 필요

 󰋯기계와 독립적                                         󰋯다른 기계에 대한 컴파일러에 재사용 가능

후반부

 󰋯전반부의 분석을 근거로 특정 기계에 대한 목적 코드를 생성하는 부분

 󰋯목적 기계에 의존적               󰋯각 목적 기계당 하나씩 필요              󰋯기계에 종속적

   

 

 2) 컴파일 과정

과정

역할

선행 처리기

  󰋯컴파일러가 원시 프로그램을 처리하기 전에 먼저 필요한 작업을 수행하는 프로그램

  󰋯원시 프로그램에서의 주석 제거        󰋯정의된 상수를 치환       󰋯매크로 확장

어휘 분석기

  󰋯프로그램을 일정한 크기로 분리        󰋯주석문과 같은 불필요한 정보를 제거

  󰋯기호 테이블과 속성 테이블에 정보 기록

구문 분석기

   어휘 분석 단계에서 생성된 토큰을 입력받아 오류를 검사, 올바른 문장에 대해 구문 구조를 만듦

의미 분석기

  󰋯원시 프로그램에 대한 의미 검사를 하는 단계

  󰋯파스트리를 따라 각 변수들의 데이터 구조를 구성, 수식의 코드를 생성

중간 코드 생성기

   구문 트리를 입력으로 받아 의미 검사를 하고 그에 해당하는 중간코드를 생성

코드 최적화

  󰋯흐름분석과 데이터 흐름 분석이 필요       󰋯방법 : 지역 최적화, 전역 최적화, 루프 최적화

목적 코드 생성

  󰋯재배치가 가능한 기계 코드나 어셈블리 코드로 구성    󰋯레지스터의 운영

  󰋯각 변수는 메모리 위치와 해당 기계어로 대치          󰋯기억 장소 할당

  󰋯목적 코드 선택 및 생성                              󰋯기계 의존적인 코드 최적화

   

 

4. 형식변환 모델

구문 분석

기법

(파싱 기법)

universal 파싱

  비효율적

하향식 파싱

  파스 트리의 루트로부터 시작하여 파스 트리를 만듦

상향식 파싱

  파스 트리의 leaf로부터 위쪽으로 파스 트리를 만듦

   

하향식

(top-down)

기법

 󰋯주어진 스트링과 같은 문장을 생성하기 위해 시작 심벌로부터 생성규칙을 적용하여 좌측 유도를 해나가는 과정

 󰋯입력 문자열에 대해 루트에서 왼쪽 우선 순으로 트리의 노드를 만듦

 󰋯예측 피서의 종류 : 순환적 내림차순 파서, 비순환적 예측 파서와 하향식 파서인 LL 파서 등

상향식

(bottom-up)

기법

 󰋯상향식 파싱은 shift-reduce 파싱이라고도 함         󰋯스택과 입력 버퍼를 이용하여 구현

 󰋯주어진 스트링이 시작심벌로 축약될 수 있으면 올바른 문장이고 그렇지 않으면 틀린 문장으로 간주하는 방법

LL 구문

기법

 󰋯하향식 방식은 주어진 스트링을 파싱하는데 많은 시간을 필요로 하기 때문에 backtracking을 하지 않고,

   결정직 파싱을 할 수 있는 방법이 LL 파싱

 󰋯LL 방법은 입력 문자열을 왼쪽에서 오른쪽으로 읽어가며 좌측 유도를 하기 때문에 붙여진 이름

 󰋯LL 문법은 LR 문법과 같은 상향식 파서에 비해 제약성이 많기 때문에 원래 프로그램 구조를 문법

 󰋯규칙에 나타내기 어렵고 이해하기 어렵다. but 구조가 단순한 언어에 대해서 구현하기 용이하므로 많이 이용

LR 구문

기법

 󰋯결정적인 상향식 방법, 가장 보편적인 파싱 방법    󰋯파싱표 구성에 따라 LR, CLR, LALR 로 구분

 󰋯입력 스트링을 왼쪽에서 오른쪽으로 읽어가며 출력으로 우파스(Right parse)를 생성하기 때문에 붙여진 이름

 󰋯상향식 방식에 비해 실행과정에서 우월하며, 오차의 색출의 쉽다.

 󰋯LR 구문 분석기는 왼쪽에서 오르쪽으로 입력을 받고 우측 우선 도출을 하는 구문 분석기를 말함

 󰋯Context-free 문법이 모든 프로그래밍 언어에 대하여 구성이 가능

   

 

3 장 자료형

프로그래머 정의 자료 (Programmer defined data)

  프로그래머가 정의한 자료

시스템 정의 자료(System defined data)

  시스템이 자동적으로 정의하는 자료

1. 형과 객체의 특징

 1) 자료의 일반

    (1) 자료 구조의 종류

    (2) 프로그래밍 언어에서 형 선언을 함으로써의 장점

        󰋯좀더 다양한 자료구조의 표현이 가능

        󰋯프로그램이 실행하는 동안 좀 더 효율적인 주기억장치의 관리가 가능

        󰋯정적 형 검사(Static type checking)가 가능

    (3) 형 선언문이 없는 경우, 혼합형 연산의 장단점

장 점

  프로그램의 작성이 쉬움

단 점

 󰋯프로그램의 작성이 쉬움  󰋯많은 기억 장소가 필요  󰋯 혼합형 연산을 위한 추가의 소프트웨어가 필요

       

 

 2) 기본 자료형 : 일반 언어에서 사용되는 기본 자료형의 형태

논리형

 󰋯종류 : 논리형, 문자형, 숫자형, 포인터 등 한 단위로 취급하거나 정의됨, (1)/거짓(0) 두 값으로 구성

 󰋯논리형 연산의 종류 : 논리합, 논리곱, 부정, 조건, 동치

문자형

(문자열)

 󰋯문자열의 연산 결과는 컴파일 시간에 결정되므로 기억 장소를 동적으로 할당하거나 회수

 󰋯문자열에 대한 개념으로 고려해야 할 3가지 형태

    -고정된 길이에 대한 선언     -선어된 한계 내에서 문자열의 길이가 가변적     -무제한의 길이

숫자형

 󰋯종류 : 정수, 유리수, 실수, 정밀도 실수, 복소수 등

 󰋯일반적으로 하드웨어에 의존하기 때문에 변경할 수 없는 자료형

 󰋯일반 언어에서 사용된 수의 연산이 기계어로 바뀌기 때문에 실행 속도가 매우 빠름

 󰋯기계마다 기계어 표현이 다를 수 있기 때문에 프로그램의 이식에는 어려움이 있음

 󰋯기계어로 직접 표현이 가능하기 때문에 보통 설명자가 필요 없음

포인터형

(Pointer)

 󰋯객체에 대한 참조

 󰋯포인터 변수란 객체를 참조하기 위해서 해당 객체의 주소를 값으로 가짐

 󰋯필요 없는 객체는 제거하여 주기억 장치의 효율을 높일 수 있음

 󰋯다양한 방법의 연결에 비해 통일된 방법으로 객체의 접근이 가능

 󰋯포인터를 사용할 때 발생할 수 있는 문제점  -한 객체에 대해 여러 포인터 변수가 가리키는 경우

                                             -한 객체에 대해 가리키는 포인터가 하나도 없는 경우

                                             -포인터 변수는 자신이 가리키고 있는 객체의 값만을 나타냄

   

 3) 변수, 상수

변수

 󰋯변수는 이름, 속성의 집합, 참조, 값의 4요소로 구성

 󰋯변수의 속성들은 실수, 정수 등과 같이 일반적으로 변수가 가질 수 있는 값들의 자료형을 의미

 󰋯변수의 속성은 컴파일 시간에 한 번 정해지면 그 다음부터는 일반적으로 변할 수 없음

선언문

 󰋯실행 시 사용될 자료의 속성을 언어의 번역기에게 알려주는 프로그램        󰋯문장

 󰋯자료의 속성에는 자료형, 크기, 이름,  생성시기, 소멸시기, 참조하기 위한 첨자 등이 있음

 󰋯Lisp, APL, Snobol4는 선언문은 전혀 사용하지 않음

 󰋯선언문을 사용하지 않는 경우의 장점

   -프로그래밍을 단순화시키고 자료구조를 구축하고 처리하는데 큰 적응성이 허용

   -프로그램 실행시간을 지연시키는 요인이 되는 동적형 검사, 자료 표현상의 효율 저하, 복잡한 기억장소 경영기법을 사용

배정문

  변수의 내용을 변경하는 원시 연산이며, 프로그램에서 가장 일반적으로 나타나는 연산문

   

 

 4) 구조자료형

배 열

 󰋯같은 형의 자료모임                󰋯레코드 또는 구조화 : 다른 형의 자료모임

 󰋯배열을 표현할 때 각 프로그램 언어마다 고려해야 할 사항

   -배열 이름과 원소에 대한 구문  -원소에 대해 가정된 형         -첨자로 사용 가능한 자료형

   -배열의 크기가 결정된 시기     -배열 이름의 주소 결정 복잡도  -배열 초기화를 위해 제공된 문장 종류

   -배열에 대해 내장된 연산 종류

레코드

(구조화)

 󰋯다른 형의 자료 모임      󰋯레코드는 포인터를 원소로 가질 수 있으므로 연속적인 레코드의 나열이 가능

 󰋯레코드 구조는 주기억 장치 내에서 하나의 블록으로 구성

 󰋯기억 장치의 구성 및 접근을 위해서 각 원소의 크기 및 변위가 먼저 결정되어야 함

 󰋯한 원소가 자신의 위치를 결정하려면 앞에 정의된 원소들의 크기를 알고 있어야 함

   

 

 5) C언어 개요

    (1) C 언어의 특징 󰋯컴파일러를 사용하고 생산성을 향상하기 위한 함수 중심의 고급 언어

                      󰋯하드웨어 제어가 가능한 프로그래밍 언어                         󰋯이식성과 호환성이 높은 언어

                      󰋯다양한 소프트웨어를 모두 기술할 수 있는 유연하고 강력한 언어   󰋯시스템 프로그래밍 언어

    (2) C언어의 장점과 단점

장 점

 󰋯프로그램을 모듈화시킨다.      󰋯다양한 연산자를 제공한다.      󰋯메모리를 동적으로 관리한다.

 󰋯간결하고 함축적인 프로그램 구조를 가진다.        󰋯능동적이며 일관성 있게 데이터를 처리한다.

 󰋯C에서 C++로 연결된 구조를 가진다.

단 점

 󰋯C 프로그램상 모든 책임을 프로그래머가 짐       󰋯비교적 저수준의 언어이므로 배우기가 쉽지 않음

 󰋯밀집된 표현이 가능 반면 읽기 어려운 표현이 될 수 있음   󰋯미비한 UNIX의 약점을 거의그대로 가짐

 󰋯UNIX기술 언어로서 개발되었기 때문에 다중 프로그래밍, 병렬 연산, 동기화, 프로세서 제어 등의 기능이  

       

    (3) C 프로그램의 기본 구조

include

  다른 파일에 선언되어 있는 함수나 데이터 형들을 현재 프로그램에 포함시킬 때 선언

define

  프로그램에서 사용할 문자열을 치환할 때 선언

main()

  하나의 프로그램에서 항상 존재해야 하는 함수로 프로그램을 제어하는 역할

사용자 정의 함수()

  사용자가 응용 프로그램 작성 시 필요로 하는 함수를 정의할 때 사용

전역 변수

  프로그램의 모든 함수에서 사용될 변수가 있을 때 선언

지역 변수

  선언된 특정한 함수 내에서만 사용되는 변수가 있을 때 선언

       

 

 6) 객체 지향 프로그래밍

    (1) 객체 지향 언어의 기본 구성

객체

 󰋯조작이나 처리의 대상이 되는 모든 것           󰋯클래스를 기본 틀로 해서 생성된 인스탄스

 󰋯객체 지향 프로그래밍에서 데이터 값과 그것에 관한 절차를 조합한 하나의 데이터 구조

         

클래스

 󰋯객체를 생성하기 위한 기본 틀을 말함    󰋯객체의 자료구조와 동작 행위의 기술을 위한 틀을 말함

 󰋯객체 지향 프로그래밍에서의 동일한 종류와 속성을 가진 객체들의 모임

속성

 󰋯객체를 표현하거나 동작을 나타내기 위해 객체가 사용하는 자료

 󰋯사람을 객체로 표현했을 때 그 사람의 나이, 성격, 눈의 색깔, 학력 등이 속성에 속함

메소드

 󰋯객체가 수행하는 동작을 표현할 함수(프로시저)

 󰋯사람을 객체로 표현했을 때 사람이 웃는다. 공부한다 등과 같은 동작

       

    (2) 객체 지향의 원리

자료의 추상화

  불필요한 자료를 제거하여 객체가 필요로 하는 자료만을 모아서 구성하는 것

캡슐화

 󰋯객체의 외부와 내부를 분리시키는 것으로 객체 내부에서 필요로 하는 정보를 외부로부터 은닉시킴

 󰋯객체의 외부에서 객체의 속성을 변경시키려면 객체가 외부에게 제공하는 인터페이스를 통해서만 가능

 󰋯객체가 행동을 하면서 내부 자료를 변화시키는 자세한 내용을 외부에 공개하지 않음

 

 󰋯클래스들 간에 자료와 연산을 공유할 수 있도록 제공한 객체 지향 언어에서의 주요 기법

 󰋯객체의 계층 구조에서 상위로 갈수록 객체의 설계는 일반화되고 하위로 갈수록 객체의 설계는 구체화됨

 󰋯계층 관계에 놓인 객체 사이에서 하위객체는 상위객체의 자료 구조나 행위 등과 같은 여러 특성을

   물려받는 것

       

 

4 장 순서 제어

1. 묵시적, 명시적 순서 제어

묵시적 순서 제어

 󰋯프로그래머가 명시적 제어를 하지 않으면 해당 언어에서 정의한 순서로 순서 제어를 함

 󰋯일반 언어에서 순서를 명시적으로 제어하는 문장이 없으면 문장 나열 순서로 제어

 󰋯수식에서 괄호가 없으면 연산자 우선순위에 의해서 수식이 계산됨

명시적 순서 제어

 󰋯해당 언어에서 각 문장이나 연산의 순서를 프로그래머가 직접 명시

 󰋯GOTO문이나 반복문을 사용해서 문장의 실행 순서를 바꿈

 󰋯수식의 괄호를 사용해서 연산의 순서를 바꿈

   

 

2. 수식에서의 순서 제어

 1) 연산자 우선순위 : 인접한 두 연산자 중 우선순위가 높은 연산이 먼저 일어남

                      󰋯우선순위를 바꾸고자 할 때에는 괄호를 사용

                      󰋯우선순위가 같은 연산자는 각 언어에서 정의된 결합법칙 순으로 실행됨

 

 2) 트리를 일렬 순서로 표현하는 3가지 방법

전위 표기법

  󰋯일반적 표기법 : 연산자를 앞에 쓰고 연산자에 따른 피연산자를 괄호로 묶어 표기

  󰋯캠브리지 폴리시 표기법 : 콤마를 없애고 연산자를 괄호 안으로 넣음

  󰋯폴리시 표기법 : 캠브리지 폴리시 표기법에서 괄호를 없애는 표기법

중위 표기법

  󰋯연산자를 피연산자 사이에 표기    󰋯두 개의 피연산자를 가지는 이항 연산에서만 적당함

후위 표기법

   피연산자 뒤에 연산자를 표기

   

 

3. 문장에서의 순서 제어

 1) 여러 문장들의 순서 제어의 구조 : GOTO, 조건문, 반복문

 2) 묵시적 순서 제어 : 각 문장의 실행 순서를 각 문장이 쓰여지는 순서로 실행

 3) 병렬로 실행 : 각 문장을 그룹화하여 병렬로 시행

 4) GOTO

    (1) GOTO  (또는 Levels) 기본 사용법

        󰋯태그로만 사용 : 번역 시간에 기계어 코드에서 분기할 위치를 알려주기 위해 사용

        󰋯제한된 자료 항목으로 사용 : 실행 시간에 레이블을 읽거나 계산하지는 못함

        󰋯제한 없는 자료 항목으로 사용 : 레이블을 실행 시간에 읽거나 계산이 가능

    (2) GOTO문의 사용상 /단점

장 점

 󰋯간결한 GOTO문의 제어 구조는 하드웨어로 제공됨   󰋯많은 제어 구조들을 대신해서 사용할 수 있음

 󰋯이론적으로 거의 모든 알고리즘을 GOTO문만으로 표현할 수 있음

단 점

 󰋯관련된 프로그램의 분산을 초래                    󰋯프로그램이 빈약하게 디자인됨

 󰋯디버깅이 어렵고 프로그램을 이해하기 힘듦         󰋯프로그램의 유지 보수가 어려움

       

 

4. 구조화된 프로그램에서의 순서 제어

 1) 조건문

단일 택일문

  IF <조건> THEN <문장들>

이중 택일문

  IF <조건> THEN <문장들 1> ELSE <문장들 2>

다중 택일문

  [수식] CASE<조건1><S1>, ......,CASE<조건n> <Sn>

   

 

 2) 반복문

    (1) 형태 : DO, FOR, WHILE, PERFORM, Repeat, Until, ....

    (2) 반복문의 종류

조건이 만족되는 한 반복

   WHILE <조건> DO <몸체>

조건이 만족될 때까지 반복

   REPEAT <몸체> UNTIL

반복 변수를 이용한 반복

   FOR(<초기화> <조건> <증분>) <몸체>

       

 

5. 부프로그램

 1) 부프로그램  󰋯고급 언어에서는 프로그램의 모듈화를 위해서 부프로그램을 지원

                󰋯한 프로그램 내에서 특정한 일이 여러 번 실행될 필요가 있을 때

                  이를 부프로그램으로 작성하여 프로그램의 여러 곳에서 사용할 수 있음

                󰋯프로그래밍에 드는 시간과 프로그램이 차지하는 기억 장소를 절약할 수 있음

                󰋯부 프로그램은 함수(Function)과 서브루틴(Subroutine 또는 Procedure)으로 구분됨

 

 2) 매개 변수 평가와 전달 기법

형식 매개 변수

󰋯부프로그램이 실행되는 동안에 식 또는 다른 변수를 대신하여 그 프로그램에서 사용되는 변수를 의미

󰋯부프로그램이 실제로 사용될 때 인수로 주어지는 실매개변수(Actual parameter)에 대응됨

실 매개 변수

󰋯부프로그램에서 형식 매개 변수 대신 사용된 원래의 식 또는 변수

󰋯실행 시에 그 값이 계산되어 부프로그램의 형식매개 변수에 대응되어 넘겨짐

   

 

 3) 매개변수 전달 기법

값 호출

 󰋯형식 매개 변수에 실 매개 변수의 값을 계산하여 복사해 주는 방식

 󰋯형식 매개 변수에 해당하는 기억 장소를 별도로 유지하기 때문에 추가적인 기억 장소가 요구됨

 󰋯매개 변수의 값이 부프로그램 안에서 변화하더라도 실 매개 변수의 값은 변함이 없음

 󰋯부프로그램에서 계산한 결과를 호출하는 측에서 넘겨받을 수 없음

 󰋯Pascal이나 C언어에서 주된 매개 변수 전달 방식

참조 호출

 󰋯형식 매개 변수에게 실 매개 변수의 주소를 전달하는 방식

 󰋯부프로그램 내에서 변화된 매개 변수의 값이 호출한 곳으로 돌아왔을 때 그대로 유지됨

 󰋯매개 변수의 값을 변화시켜야 하는 부프로그램에서 유용하게 사용할 수 있음

 󰋯부작용을 초래하여 프로그램의 신뢰성을 떨어뜨리는 요인이 되기도 함

 󰋯Fortran 언어에서 주된 매개 변수 전달 방법

이름 호출

 󰋯형식 매개 변수에 실 매개 변수의 이름을 대치하는 방식               󰋯프로그램을 읽기가 어려움

 󰋯형식 매개 변수가 사용될 때마다 이에 대응된 실 매개 변수를 매번 계산에서 사용함

 󰋯이름 호출은 다른 매개 변수 전달 기법에 비해 구현하기가 어려움      󰋯Algol 언어에서 채택된 방식

   

 

 4) 프로그래밍 언어에서 유해한 특징

부작용

(side effect)

 󰋯프로그래밍 언어에서 한 서브루틴이나 함수가 자신의 지역 변수에 속하지 않는 전역 변수나

   매개 변수의 값을 변화시키는 일

 󰋯참조 호출(Call by Reference)과 이름 호출(Call by Name)에서 발생

 󰋯정확한 프로그램을 작성하는데 큰 어려움을 주고 프로그램의 정확성 검사를 불가능하게 함

 󰋯전역 변수의 단점을 보완하기 위해서 매개 변수 전달 기법을 사용

별명

(이명 : aliasing)

 󰋯한 단위 프로그램에서 동일한 기억 장소를 참조하는 변수에 두 개 이상의 이름이 붙은 것

 󰋯실제 변수는 하나뿐이므로 한 변수의 값을 변화시키면 그 변수와 같은 기억장소를 참조하는

   다른 변수들의 값도 같이 변하게 됨

 󰋯Fortran EQUIVALENCE문은 별명의 대표적인 예

   

 

5 장 운영체제

1. 시스템 프로그램의 이해

 1) 컴퓨터의 구성

하드웨어

 󰋯시스템을 구성하는 기계 장치   󰋯프로세서(processor), 기억장치, 입출력 장치, 인터페이스(Interface)로 구성

소프트웨어

 󰋯응용 프로그램 : 컴퓨터를 사용하여 주어진 문제를 해결하는 프로그램

 󰋯시스템 프로그램 : 컴퓨터를 효율적으로 운영할 수 있도록 하드웨어의 동작을 지시하고 제어,

                     관리하는 다양한 기능을 갖도록 하는 일련의 프로그램으로 구성된 집합체

   

 

 2) 시스템 소프트웨어의 종류

어셈블러

󰋯어셈블리 언어로 작성된 소스 프로그램을 기계어로 번역하여 목적 프로그램을 생성하는 언어 번역 프로그램

󰋯일반적으로 소스 프로그램을 두 번 읽어서 처리하는 2-패스(pass)로 구성됨

매크로

프로세서

󰋯매크로 명령문을 해당 어셈블리 언어의 명령문으로 확장시켜 주는 시스템 프로그램

󰋯장점 : 프로그램이 간단해지고 반복적인 코딩을 피할 수 있음

󰋯단점 : 매크로 확장 시간이 필요함

󰋯매크로 처리 과정 : 매크로 정의 인식 및 매크로 정의 저장, 매크로 호출 인식, 매크로 호출 확장

󰋯일반적으로 소스 프로그램을 두 번 읽어서 처리하는 2-패스(pass)로 구성됨

로더

(Loader)

󰋯목적 프로그램을 주기억 장치에 적재하여 실행 가능하도록 해주는 시스템 프로그램

󰋯기능  ① 할당(Allocation) : 주기억 장치 안에 빈 공간을 할당

        ② 연결(Link) : 목적 모듈들 사이의 기호적 외부 참조를 실제적 주소로 변환

        ③ 재배치(Relocation) : 종속적인 모든 주소를 할당된 주기억 장치 주소와 일치하도록 조정

        ④ 적재(Load) : 기계 명령어와 자료를 기억 장소에 물리적으로 배치

󰋯링커(Linker) : 로더의 4 기능 중 연결만을 담당하는 로더의 형태

  링킹(Linking) : 목적 모듈(Object module) 간의 기호적 외부 참조(external reference)를 해결하여

                 호출 가능한 주소로 변환시켜 주는 작업

󰋯서브프로그램과 주 프로그램을 연결해 주는 시스템 프로그램

󰋯일반적으로 다른 곳에서 작성된 프로그램 루틴이나 컴파일 또는 어셈블러된 루틴들을 모아서 실행 가능한

  하나의 루틴으로 연결

   

 

 3) 운영체제 (OS : Operating System) 

정의

 󰋯한정된 컴퓨터 시스템의 자원을 보다 효율적으로 관리하고 운영함으로써 사용자들에게 편의를 제공하고자

   하는 시스템 프로그램

 󰋯인간과 기계간의 인터페이스(Man-Machine Interface) 역할

기능

 󰋯컴퓨터 시스템 자원 관리                  󰋯프로세서, 메모리, 주변 장치, 파일 등을 관리

역할

 󰋯사용자와 컴퓨터 시스템 간의 인터페이스(interface) 기능을 제공  󰋯사용자 간의 하드웨어 공동 사용을 허용

 󰋯사용자 간의 데이터를 공유하게 해줌                                 󰋯컴퓨터 시스템의 오류 처리를 담당

 󰋯사용자 간의 자원(프로세서, 메모리, 입출력 장치 등) 사용을 스케줄링                󰋯입출력 역할을 지원

 󰋯컴퓨터 시스템의 성능(Performance) 향상을 꾀함(처리율의 향상, 응답 시간의 단축, 신뢰성의 향상 등)

   

2. 운영체제의 실제

 1) DOS

정의

 󰋯Disk Operating System의 약자로 본래는 IBM 사의 OS(Operating System)명칭이었으나

   현재는 디스크를 중심으로 PC를 움직이기 위한 기본적인 시스템 소프트웨어

 󰋯컴퓨터의 하드웨어를 효율적으로 제어할 수 있도록 인터페이스를 제공

 󰋯가장 많이 사용되었던 DOS는 마이크로소프트 사에서 제작한 MS-DOS

종류

 󰋯PC-DOS : 마이크로소프트사가 IBM-PC를 위해 개발하여 IBM 사에 공급하는 운영체제

 󰋯MS-DOS : 마이크로소프트사가 IBM-PC가 아닌 호환기종 사용자를 위해 만든 운영체제, 국내에서 가장 많이 사용

 󰋯DR-DOS : CP/M을 만든 디지탈리서치 사에서 만든 운영체제로 MS-DOS와 호환성을 가지면서, 마우스 버튼

              하나로 워드프로세서를 제외한 대부분의 기능을 운영할 수 있는 특징을 가지고 있음

 󰋯K-DOS : 한국형 운영체제로서 과기처 등과 함께 일하는 한국 컴퓨터연구조합에서 만들었으나 크게 보급되지 못함

구성

 󰋯MSDOS.SYS : 파일 관리와 시스템 호출의 처리를 중심으로 하는 부분이며,

                 키보드, 모니터, 프린터, RS232C 등도 하나의 파일로 취급

 󰋯IO.SYS : MSDOS.SYS에서 입출력 요구가 나타나면 실제 입출력을 행하는 부분이며,

            CONFIG.SYS에 기술한 환경을 구성하여 MS-DOS의 유연성을 높여줌

 󰋯명령 프로세서(COMMAND.COM) : 키보드로부터 입력된 명령이나 배치 파일에 저장된 명령을 판독하여 실행하는 기능

   

 

 2) WINDOWS

    (1) WINDOWS의 개요와 종류

개요

 󰋯Windows는 하나의 응용 프로그램을 하나의 창으로 하여 실행하기 때문에 동시에 여러 개 실행할 수 있음

 󰋯DOS 기반의 문자 위주로 명령을 입력하지 않고 작은 그래픽(아이콘)으로 명령을 선택하여 실행할 수 있음

 󰋯창과 창을 연결해 주는 OLE를 사용하여 사용자는 편리하게 원하는 작업을 할 수 있음

종류

 󰋯MS-WINDOWS 95,98 : Microsoft 사에서 개발한 운영체제로 32비트 데스크톱 운영체제로 모든 프로그램을

                         설치한 후 필요하지 않은 프로그램을 자동으로 제거할 수 있고, 쉬운 인터넷 액세스,

                         멀티태스킹 및 긴 파일 이름도 지원

 󰋯OS/2 : IBM 사에서 개발한 운영체제로 음성 인식 기능이 지원되며,

          내장된 웹브라우저와 객체 지향 기술로 쉽게 인터넷을 사용

 󰋯System 8.5 : Apple 사에서 개발한 매킨토시 전용 운영체제로 현재는 MacOS로 불러짐

     

    (2) WINDOWS 95의 특징과 기능

멀티태스킹

  하나의 컴퓨터에서 여러 개의 작업을 동시에 실행하여 생산성을 높일 수 있음

OLE

  각 응용 프로그램에서 작성된 데이터를 해당 프로그램의 형식으로 변환없이 서로 공유하여 사용할 수 있음

메모리 관리

  도스에서의 640KB의 기본 메모리 사용한계에서 벗어나 최대 4GB의 메모리를 사용할 수 있음

DOS 프로그램의 호환성

  DOS에서는 윈도우용 응용프로그램을 실행할 수 없지만 윈도우에서는 DOS용 응용프로그램도  

  아무런 제약 없이 발로 사용할 수 있음

긴 파일명 지원

  지원하는 파일명의 길이가 최대 255문자까지 사용할 수 잇기 때문에

  파일의 성격에 맞는 이름을 제약 없이 사용할 수 있음

PnP 기능

  새로운 하드웨어를 추가할 때 컴퓨터에 꽂기만 하면 컴퓨터가 알아서 인식하는 기능

네트워킴

  포괄적인 네트워킹 기능을 포함하고 있기 때문에 다른 시스템끼리 서로 데이터를 공유하거나

  디스크와 프린터 등의 하드웨어 자원을 나누어 쓸 수 있음

       

    (3) WINDOWS 98 :  󰋯인터넷과 웹(Web)의 통합          󰋯액티브 데스크톱과 웹 인터페이스의 지원

                        󰋯다양한 시스템 관리 프로그램 추가  󰋯다양한 하드웨어 지원   󰋯멀티미디어 기능 향상

 

 3) UNIX

개 요

 󰋯유닉스 시스템은 운영테제 소프트웨어(OS)와 응용 프로그램 또는 유틸리티 소프트웨어로 구성

 󰋯일반적으로 UNIX는 운영체제와 여러 가지 유용한 응용 프로그램까지 포함

특 징

 󰋯단순하고 강력한 명령어를 제공                  󰋯파일을 효과적으로 관리할 수 있는 계층적 파일 시스템

 󰋯대화식 시분할 운영체제                        󰋯다중 작업(Multi-Tasking), 다중 사용자(Multi-User) 환경

 󰋯C언어로 작성되어 사용과 수정이 쉽고 확장성이 좋음  󰋯시스템 구조를 은폐시킬 수 있는 보호 기능을 제공

   

구 조

커널(Kernel)

 󰋯항상 주기억장치에 상주하는 가장 핵심적인 부분

 󰋯기능 : 프로세스 관리, 입출력 관리, 파일 시스템 관리, 프로세스간 통신, 기억장치 관리

 󰋯사용자는 시스템 호출(System Call)을 이용해서 커널의 기능을 사용할 수 있음

 󰋯대부분 C언어로 개발되었기 때문에 이식성과 확장성이 뛰어남

(Shell)

  Unix와 사용자가 대화하기 위한 기반을 제공하는 프로그램

유틸리티

  각종 언어(C, BASIC, FORTRAN, COBOL )에 필요한 소프트웨어를 제공

   

 

3. 응용프로그램의 이해

 1) 워드프로세서

개 요

  일상생활이나 업무 중에서 요구되는 여러 형태의 문서의 작성, 기억, 편집, 인쇄 등의 처리기능을 갖추고

  있는 기기나 프로그램을 총칭

이 점

 󰋯문서 작성 시 시간과 노력을 절감할 수 있음      󰋯작성된 문서의 수정 및 재편집 할 수 있음

 󰋯문서의 체계화와 통일성을 기할 수 있음          󰋯통신의 발달로 문서를 통신상에서 전송이 가능

 󰋯문서의 보존 및 검색이 편리하고 같은 문서를 여러 장 작성할 필요가 없음

종 류

 󰋯워드프로세서 전용기  ① 문서 작성만을 할 수 있도록 만들어진 일체형 기기

                        ② 휴대가 편리, 문서 작성 후 바로 인쇄 가능

                        ③ 비슷한 크기의 휴대용 컴퓨터의 등장으로 최근엔 거의 사용되지 않음

 󰋯PC 워드프로세서     ①컴퓨터상에서 다양한 워드프로세서 프로그램을 이용하여 문서를 작성하는 형태

                        ② 화면이 크고, 표시 속도가 빠름      ③데스크톱과 휴대용인 노트북으로 나뉨

형 태

 󰋯독립형 : 한번에 한 사람만 작업이 가능한 형태로 다른 사무기기와 연결하여 사용할 수 없으며

            문서 작성만 가능(타자기, 전용기)

 󰋯공유 논리형 : 하나의 CPU와 기억장치에 여러 대의 단말기가 연결된 형태로

                 많은 사람이 동시에 문서 작업이 가능

 󰋯혼합형 : 독립형과 공유논리형의 혼합형태로 중앙 컴퓨터에 각각의 PC가 연결되어

           개인 및 여러 사람이 동시 사용가능

작업

형태

 󰋯Close(폐쇄): 문서작성 전담자를 두어 필요한 문서를 작성하는 형태 : 워드프로세서의 생산성 가장 높음

 󰋯Open(개방): 문서작성 전담자를 두지 않고 필요시 아무나 워드프로세서를 사용하는 형태

                  -생산성 저하, 문서 작성의 효율성은 향상

 󰋯Semi Close(반폐쇄): 문서작성 전담자를 두지 않고 몇몇 특정인만이 워드프로세서를 사용하는 형태

 󰋯Semi Open(반개방): 문서작성 전담자는 두지 않고, 조작하는 사람을 1명 배정하여 워드프로세서를 사용하는 형태

   

 

 2) 스프레드시트

개 요

 󰋯PC에서 사용되는 애플리케이션 프로그램 중 계산용 프로그램

 󰋯컴퓨터 화면을 마치 큰 계산표처럼 사용할 수 있게 해 주는 프로그램

기 능

 󰋯계산기능, 문서 작성 기능, 그래프 기능, 데이터베이스 기능, 인쇄 기능

 󰋯입력되는 자료의 종류 : 숫자, 문자, 계산식, 함수 등을 입력하여 사용자가 원하는 결과를 얻을 수 있음

 󰋯그래프를 작성하면 원시 데이터와 연결되어 있기 때문에 원시 데이터를 수정하면 그래프도 따라서 수정됨

 󰋯입력된 자료를 3개의 기준키로 정렬할 수 있음, 원하는 자료만 추출해서 조회할 수 있는 자동추출 기능제공

 󰋯셀을 참조하는 방식에는 자동으로 해당 주소가 변경(상태 참조), 해당 주소가 변경되지 않음(절대 참조),

   하나의 행이나 열만이 변경 (혼합 참조)가 있음

 󰋯피벗 테이블 : 데이터베이스 목록을 요약하고 분석하여 보고서로 작성

 󰋯목표값 찾기 : 수식의 결과값을 가상으로 결정하여 그 목표값을 계산할 때 필요한 수치가 얼마인지 알아보는 것

 󰋯해 찾기 : 여러 개의 셀을 변경 셀로 지정하여 서로 값을 조정하여 원하는 결과값을 얻을 수 있는 기능

 󰋯시나리오 : 결과를 예측하기 어려운 경우 여러 가지 상황에 다른 결과값을 비교 분석해 계획을 세우기 위해

              사용하는 기능

     

728x90
반응형
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band