본문 바로가기

CS

(41)
[FP] 02. 화일 저장장치 기본 개념 저장 장치 : 저장 매체+매체에 데이터를 저장하고 검색하기 위한 장치 저장 매체 : 데이터를 저장하는 물리적 재료 (소멸성 vs 비소멸성) 접근 장치 : 데이터를 판독하거나 기록하는 장치 저장 장치 (Storage device) 1차 저장 장치 (Primary storage) - 소멸성 메인 메모리 : 내용 접근 시간은 일정하고 빠르다. 프로그램/데이터를 처리하기 위한 작업 공간. 용량이 적다. DRAM(dynamic random access memory), 재충전(refresh)이 필요하다. 캐시 메모리 : 메인 메모리 성능 향상 목적, 가장 빠르고 비쌈. SRAM(static random access memory) : 데이터를 유지하기 위해 자주 재생(refresh)할 필요 없음 2차 저장..
[FP] 01. 화일의 기본 개념 기본 개념 같은 데이터로도 처리 방법에 따라 다양한 정보가 나온다. 레코드 관련 있는 속성들의 집합 데이터 필드 (field) / 애트리뷰트 (attribute) / 데이터 항목 (item) 이름을 가진 논리적 데이터의 최소 단위 특정 객체(object, entity)의 한 성질을 표현 레코드 타입 (record type) 논리적으로 서로 연관된 데이터 필드들의 집합 / Entity type 레코드 어커런스 (record occurrence) 한 레코드 타입의 인스턴스(instance) 레코드 타입의 각 필드에 따라 실제 값이 들어가 어떤 특정 객체를 나타내는 것 보통 레코드(record)라고 함 화일 어떤 응용 목적을 위해 함께 저장된 레코드 집합 (Ex. 급여, 인사, 재무 등) 보통 보조 저장장치에..
[PL] 12. Exception Handling and Event Handling 기본 개념 Exception 하드웨어 또는 소프트웨어에서 감지될 수 있는 비정상적인 이벤트. 에러일 수도 있고 에러가 아닐 수도 있다. 보통 특별한 처리가 필요할 수 있다. Exception handling 예외가 감지된 후에 필요한 특별한 처리 Exception handling을 해주는 code unit(코드 단위)은 exception handler라고 부른다. 예외 Exception 예외(상황)란? 심각하지 않은 오류 혹은 비정상적 상황 예외 발생 시 계속 수행할 수 있도록 처리해야 함 발생된 예외를 처리하지 못하면 프로그램 종료 예외에 대한 적절한 처리 안전한 프로그램 실행을 위해 매우 중요 C++, Java, Python 등 최신 언어들은 예외 관련 기능을 제공함 -> Reliability가 아니..
[PL] 11. Support for Object-Oriented Programming Object-Oriented Programming 언어의 주요 특징 Abstraction 추상화 implementation을 숨김 - Readability가 올라간다. 재사용성이 올라감 + 모듈화(유지보수 쉬워짐) Encapsulation 캡슐화 Member와 접근하는 Method를 합침, Member에 접근하려면 Method를 통해서만 가능 - 보안성이 높아짐 Re-use 재사용 Inheritance(상속)를 통해서 가능 - 모듈별로 재사용 가능하게 한다. Polymorphism 다형성 Dynamic Function(Method) Binding - 정의된 함수가 실행될 때 run-time에 어떤 객체인지 보고 결정 Inheritance (상속) Re-use로부터 생산성을 향상할 수 있다. 상속이 없는 ..
[PL] 10. Abstract Data Types and Encapsulation Constructs Abstraction 추상화 : 가장 중요한 속성만 포함하는 entity(개체)의 view or representation (관점 or 표현) 추상화 개념은 프로그래밍과 컴퓨터 과학에서 중요한 개념이다. 거의 모든 프로그래밍언어는 subprogram을 통한 프로세스 추상화를 지원한다. Process abstraction 1980년 이후로 설계된 거의 모든 프로그래밍언어는 데이터 추상화를 지원한다. Data abstraction 객체지향 언어 Simula-67 : 실세계에 있는 객체들을 표현, 이들 사이의 상호작용을 시뮬레이션하기 위한 언어. 클래스 개념 도입 Smalltalk : 순수한 객체지향 언어로 설계, 최초로 GUI를 제공하는 언어 C++ : C에 클래스 개념 도입 / 상속, 가상함수, 추상 클래..
[PL] 09. Implementing Subprograms Subprogram Linkage Subprogram이 call하고 return하는 것을 함께 부르는 것 Subprogram이 call한다는 것의 일반적 의미 Parameter의 전달 방법 (Actual parameter가 formal parameter로 전달) Local 변수를 Stack-dynamic으로 할당해준다. 호출하는 프로그램(calling program)이 실행 상태를 저장한다. Transfer of control and arrange for the return (return을 위해 제어와 arrange를 전환) 중첩을 지원하면, non-local 변수에 대한 접근이 지원(arrange)되어야 한다. Subprogram이 return한다는 것의 일반적 의미 out mode / inout mo..
[PL] 08. Subprograms Subprogram 각 Subprogram은 하나의 entry point(진입점)를 가진다. Calling program은 Subprogram이 실행되는 동안 일시 정지된다. Subprogram이 종료되면 Control은 항상 Caller로 반환된다. Function의 Declaration(function body가 X)과 Define(function body가 포함)이 구분되는 언어 C/C++/Java (Python은 구분 X) Subprogram Definition Subprogram 추상화의 동작과 interface를 설명 Python의 function definition은 실행 가능하다. 다른 모든 언어의 function definition은 실행 불가능하다. Subprogram Call Subp..
[PL] 07. Statement-Level Control Structures Control Statements 60년대에 알고리즘은 “Sequential / two-way selection / pretest logical loop 로 표현 가능하다.”라고 했다. 어셈블리어 예시 Conditional (BEQ, BNE 등) Ex) 500 BEQ R2, R4 2000 / R2, R4가 같으면 500에서 2000으로 이동 Unconditional (JMP 등) Ex) 500 JMP 10000 / Unconditional하게 10000으로 이동 Control Structure 컨트롤 명령어(if, while 등)와 그 명령어에 의해서 제어되는 명령어들의 집합 (control statement + statement whose execution it controls) 구조적 프로그래밍 go..