- 변수 ( Variable ) = 값을 저장할 수 있는 공간. 변할 수 있는 값
- 예약어 = 정해진 기능을 수행하도록 이미 용도가 정해져 있는 단어. 변수로 사용 X
- 기억클래스 = 변수 선언 시 변수의 값을 저장하기 위한 기억영역을 결정하는 작업
- 자동 변수( Automatic Variable )
: 함수나 코드의 범위를 한정하는 블록 내에서 선언되는 변수
초기화하지 않으면 쓰레기값(Garbage Value) 저장, 함수나 블록 벗어나면 자동으로 소멸- 외부 변수( External Variable )
: 현재 파일이나 다른 파일에서 선언된 변수나 함수를 참조하기위한 변수
함수 밖에서 선언, 함수가 종료된 뒤에도 값이 소멸 X, 초기화하지 않으면 자동으로 0으로 초기화 된다. 다른 파일에서 선언된 변수를 참조할 경우 초기화 할 수 없다.- 정적 변수( Static Variable )
: 함수나 블록 내에서 선언하는 내부 정적변수,함수 외부에서 선언하는 외부 정적변수.
선언한 함수나 블록 내에서만 사용, 외부 정적변수는 모든 함수 사용가능
함수나 블록이 종료되도 값이 소멸하지 X, 초기화는 선언 시 한번만.
초기화 생략시 자동으로 초기화.- 레지스터 변수 ( Register Variable )
: 메모리가 아닌 CPU 내부의 레지스터에 기억영역을 할당받는 변수.
자주 사용되는 변수를 레지스터에 저장. 처리속도 높임.
함수나 블록에서 벗어나면 자동으로 소멸. 레지스터 사용 개수 한정.
변수의 주소를 구하는 주소연산자(&)를 사용할 수 없다.
연산자 우선순위
단항연산자 ( !, ~, ++, --, sizeof )
>> 산술연산자 ( *, /, %, +, - )
>> 시프트 연산자 ( << , >> )
>> 관계연산자 ( <, <=, => , > )
>> 비트연산자 ( &, ^, | )
>> 논리연산자 ( &&, || )
>> 조건연산자( 조건 ? 실행문1 : 실행문2 )
>> 대입연산자 ( =, +=, -=, *=, /=, %=, <<=, >>= 등 )
>> 순서연산자 (,(콤마)) 순
포인터
- 포인터 변수는 필요에 의해 동적으로 할당되는 메모리 영역인 "힙 영역"에 접근하는 동적 변수이다.
- 메모리 영역
- 코드 영역 : 실행할 프로그램의 코드가 저장됨
- 힙 영역 : 필요에 의해 동적으로 할당되는 영역
- 스택 영역 : 함수의 매개 변수와 지역변수가 저장됨
- 데이터 영역: 전역 변수와 정적 변수가 저장됨
함수 포인터
- C언어에서 함수 이름은 해당 함수가 시작되는 주소를 의미
변수의 주소를 포인터 변수에 저장하는 것처럼 함수의 주소도 함수 포인터에 저장할 수 있을 뿐만 아니라 함수 포인터를 이용해서 함수를 호출할 수 있다.- ex) int (*pf)(int,int); << 함수 포인터 선언
pf = 함수이름; << 함수포인터 함수이름에 연결
pf( int형변수,int형변수 ); 함수형포인터로 함수호출
절차적 프로그래밍 언어
- 장점
- 실행속도가 빠르다.
- 구조적 프로그래밍이 가능하다.
- 단점
- 프로그램 분석이 어렵다.
- 유지보수나 코드수정이 어렵다.
- 종류
- C
= 포인터를 제공하며, 고급프로그래밍 언어이면서 저급프로그램
언어이다. 컴파일러 방식의 언어- ALGOL
= 수치계산이나 논리 연산을 위한 과학 기술 계산용 언어이다.- COBAL
= 사무 처리용 언어이다.- FORTRAN
= 과학 기술 계산용 언어이다.
객체지향 프로그래밍 언어
- 객체지향 프로그래밍 언어
= 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체로 만들어 기계적인 부품들을 조립하여 제품을 만들 듯, 프로그램을 작성할 수 있도록 한 프로그래밍 기법- 장점
- 상속을 통한 재사용과 시스템 확장이 용이
- 코드의 재활용성이 높다.
- 모델링에 의해 분석과 설계를 쉽 효율적으로 할 수 있다.
- 대형 프로그램의 작성의 용이하다.
- 소프트웨어 개발 및 유지보수가 용이하다.
- 단점
- 구현 시 처리 시간이 지연된다.
- 종류
- Java,C++,Python 정도
객체지향 프로그래밍 언어의 특징
- 캡슐화 ( Encapsulation )
- 데이터와 데이터를 처리하는 함수를 하나로 묶는 것
- 세부내용이 외부에 은폐(정보 은닉)되어, 변경이 발생 할 때 오류의
파급효과가 적다.- 캡슐화된 객체들은 재사용이 용이하다.
- 정보은닉 ( Information Hiding )
- 캡슐화에서 가장 중요한 개념으로, 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용
- 추상화 ( Abstraction )
- 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화 한 것, 즉 "모델화" 하는 것이다.
- 데이터의 공통된 성질을 추출해서 슈퍼 클래스를 선정하는 개념이다.
- 상속성 ( Inheritance )
- 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 물려 받는 것이다.
- 상속성을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 사용할 수 있다.
- 다형성 ( Polymorphism )
- 메시지에 의해 객체(클래스)가 연산을 수행할 때 하나의 메세지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
- 객체들은 동일한 메소드명을 사용하며 같은 의미의 응답을 한다.
스크립트 언어 ( Script Language )
- 스크립트언어
= HTML문서 안에 직접 프로그래밍 언어를 삽입하여 사용. 기계어로
컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하는 언어
- 서버용 스크립트 언어 : ASP, JSP, PHP, 파이썬
- 클라이언트용 스크립트 언어 : 자바 스크립트- 장점
- 컴파일 없이 바로 실행가능. 결과를 바로 확인
- 배우고 코딩하기 쉽다.
- 개발 시간이 짧다.
- 소스코드를 쉽고 빠르게 수정할 수 있다.
- 단점
- 코드를 읽고 해석해야 하므로 실행 속도가 느리다.
- 런타임 오류가 많이 발생한다.
- 종류
- 자바 스크립트 ( Java Script )
= 클라이언트용 스크립트 언어. 웹 페이지 동작을 제어.
변수 선언이 필요없음. 서버에서 데이터를 전송할 때 입력 사항을 확인하기 위한 용도로 많이 사용- ASP ( Active Server Page )
= 서버 측에서 동적으로 수행되는 페이지를 만들기 위한 언어
MS사에서 제작. Windows 계열에서만 수행 가능한 프로그래밍 언어- JSP ( Java Server Page )
= Java로 만들어진 서버용 스크립트 언어로, 다양한 OS에서 사용 가능- PHP ( Professional Hypertext Preprocessor )
= 서버용 스크립트 언어. Linux, Unix, Windows OS에서 사용이 가능
C,Java 등과 문버이 유사하므로 배우기 쉬어 웹 페이지 제작에 사용- 파이썬
= 객체지향 기능을 지원하는 대화영 인터프리터 언어.
플랫폼에 독립적이고 문법이 간단하여 배우기 쉽다.
선언형 언어 vs 명령형 언어
- 선언형 언어
= 프로그램이 수행해야 할 문제를 기술한 언어.
- 목표를 명시하고 알고리즘은 명시하지 않는다.
- 함수형 언어와 논리형 언어 등이 있다.
- 명령형 언어
= 문제를 해결하기 위한 방법을 기술한 언어.
- 알고리즘을 명시하고 목표는 명시하지 않는다.
- 절차적 언어와 객체지향 언어가 있다.
- 선언형 프로그래밍 언어 종류
- HTML
= 인터넷 표준 문서인 하이어텍스트 문서를 만들기 위해 사용한 언어
특별한 데이터 타입이 없는 단순한 텍스트이므로, 호환성이 좋고 사용이 편리하다.- XML
= 기존 HTML의 단점을 보완하여 웹에서 구조화된 폭넓고 다양한 문서들을 상호 교환할 수 있도록 설계된 언어.
HTML에 사용자가 새로운 태크(Tag)를 정의할 수 있으며, 문서의 내용과 이를 표현하는 방식이 독립적이다.- PROLOG
= 논리학을 기초로 한 고급언어. 인공지능분야에서 사용- LISP
= 인공지능 분야에서 사용되는 언어
" Ch.1 프로그래밍 언어 예상문제 정리 "
( 지극히, 내가 기억하고 싶은 내용 중심을 참고하길 바란다. )
- 객체지향 프로그래밍 언어 구성요소 객체, 클래스, 메시지가 무엇인지 간단하게 서술하시오.
[ 정답 ]
A. 객체 : 속성과 이를 처리하기 위한 메소드를 결합한 소프트웨어 모듈
B. 클래스 : 객체의 집합
C. 메시지 : 객체들 간에 상호작용을 위한 수단. 객체의 메소드를 일으키는 외부의 요구사항.- HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로, 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어는 ?
[ 정답 ]
스크립트 언어 ( script Language )- 서버용 스크립트 언어의 하나로, Linux, Unix, Windows 운영체제에서 사용된다. C,Java와 언어의 문법과 유사해서 배우기가 쉽고, 웹페이지 제작에 많이 사용하는 이 프로그래밍 언어는 ?
[ 정답 ]
PHP ( Professional HyperText Preprocessor- 순차적인 명령 수행을 기본으로 하는 언어로, 문제를 처리하기 위한 방법에 초점을 두고 코드를 작성하는 것은 ? 대표적으로 C,Java가 속해있다.
[ 정답 ]
명령형 언어- 선언형 언어는 알고리즘은 명시하지않고 목표만 명시한다. 이러한 선언형 언어의 종류를 3가지만 쓰시오.
[ 정답 ]
HTML , XML , LISP, PROLOG
728x90
반응형
'정보처리기사 > 실기고사 이론정리' 카테고리의 다른 글
[Chapter 6] 화면 설계 (0) | 2020.10.06 |
---|---|
[chapter 5] ★ 서버 프로그래 구현 ★ (0) | 2020.10.05 |
[Chapter 4] 통합구현 (0) | 2020.10.04 |
[ chapter 3 ] 데이터 입출력 구현 (0) | 2020.10.03 |
[ Chapter 2 ] 요구사항 확인 (0) | 2020.09.30 |