본문 바로가기

분류 전체보기

(47)
[PL] 04. Names, Bindings, and Scopes 기본 개념 명령형 언어(Imperative language)는 폰 노이만 아키텍처(컴퓨터를 처리장치와 메모리가 연결된 것)를 가정. CPU가 메모리에서 명령어를 가져오고 가져온 명령어를 해석하고 해석한 것을 실행. 실행한 것을 다시 레지스터(임 시저장)와 메모리에 써준다. 결국 변수를 처리하는 것이다. 변수는 속성(attribute)에 따라 특징이 결정됨. (type을 디 자인하려면, scope, lifetime, type checking, initialization, type compatibility를 고려) 변수의 이름 변수의 주소(메모리의 번지수) 변수의 값 변수의 타입 변수의 Scope (변수를 볼 수 있는 영역은 어떻게 되느냐) (내가 변수를 선언한 블럭의 아래 블럭에선 쓸 수 있지만 위에선 불..
[PL] 03. Lexical and Syntax Analysis 기본 개념 언어 구현 시스템은 특정 구현 방법과 관계없이 소스 코드(문자 파일_Character가 연속적으로)를 분석해야 합니다. Lexical Analysis : 캐릭터를 받아들이고 패턴 매칭. 내가 정의한 키워드, 연산자, id 등이 맞는지 패턴이 유효한지 판 단해서 유효한 것들을 뽑아내는 것. 유효한 것 하나하나 => lexeme (/ token) Syntax Analysis : BNF(구문의 형식적 설명)에 맞는지 판단해서 파스 트리를 생성 BNF를 쓰는 이유 명확하고 간결한 Syntax 묘사 파서가 직접적으로 BNF 이용 가능 BNF 사용 파서는 유지 보수가 쉬움 Lexical Analysis의 입력은 소스 코드, 출력은 Syntax Analysis의 입력, Syntax의 출력은 Syntax T..
[PL] 02. Describing Syntax and Semantics 기본 개념 Syntax : Expression, Statement, Program unit의 형태 또는 구조 (어떻게 표현하는지) Semantics : Expression, Statement, Program unit의 뜻 (어떤 의미를 가지는지) Syntax와 Semantics는 언어 정의를 제공 언어 정의의 사용자 : 언어 디지이너, 구현자(언어를 컴퓨터 프로그램으로), 개발자 등 Syntax(문법)을 기술하는 것이 Semantics(의미론)을 기술하는 것보다 쉬움 -> 보편적인 표기법이 존재하기 때문 A sentence : Sentential Form의 하위 분류 / Non-terminal이 아닌 Terminal로만 이루어진 String의 묶음 A language : Sentence들의 집합 A le..
[PL] 01. Preliminaries 프로그래밍의 적용 분야 (Programming Domain) 과학 : 대규모 소수점 연산, 배열 사용 / Fortran 비즈니스 : 리포트 생성, 10진수 및 문자 사용 / COBOL AI : 숫자 대신 기호 조작, 리스트 사용 / LISP 시스템 프로그래밍 : 지속적인 사용으로 인한 필요성 / C 웹 소프트웨어 : 마크업(문서나 데이터의 구조를 표현하는 것)(HTML), 스크립팅(PHP), 일반 목적(JAVA) 언어 평가 기준 (Language Evaluation Criteria) Readability 전반적인 간단함 : 관리 가능한 구조와 특징의 집합 / 최소한의 기능 다중성 / 최소한의 연산자 오버로딩 직교성(Orthogonality) : 상대적 작은 수의 기본 구성요소가 상대적으로 적은 방법으로 ..
[DB] 08. Database Design Theory 좋은 스키마와 나쁜 스키마 나쁜 스키마의 예시 1 3가지의 이상(anomaly)가 존재 Update anomaly (갱신 이상) - chairman, building, budget 속성값이 deptName 값에 의존적이므로 학과명이 반복될 때 해당 속성값이 반복적으로 나오게 됨 / 갱신 시 모든 값을 동시에 갱신하여야 함 Delete anomaly (삭제 이상) - 학과에서 제공하는 마지막 과목이 삭제되면 학과에 대한 다른 정보들도 함께 삭제되는 현상 Insert anomaly (입력 이상) - 새로운 학과의 학과 정보를 입력하고자 하면 그 학과가 개설하는 과목이 없으면 입력할 수 없음 (주 키가 cID이므로) 나쁜 스키마의 예시 2 설계 목표 특정 관계 R이 좋은 형태인지 결정하는 것 관계 R이 좋은 ..
[DB] 07. Entity-Relationship Data Model Entity and Relationship 개체와 관계성 ER 데이터 모델 (Entity-Relationship 데이터 모델) 데이터베이스는 개체들의 집합과 개체들 사이의 관계로 모델링될 수 있음 ER 모델의 모델링 기본 요소 - Entity (Entity Set) - property : attribute - Relationship (Relationship Set) - property : attribute - ER 모델에서 지원되는 Property는 오직 속성(attribute)뿐임 Entity 개체 존재하며 다른 객체와 구별 가능한 객체를 의미 어떤 것이든지 개체가 될 수 있음 (사람, 회사, 이벤트 등) 개체는 속성(attribute)를 가짐 (사람은 이름과 주소를 가짐) 개체 집합은 같은 속성(pr..
[DB] 06. Application Development Embedded SQL (내장 SQL) SQL을 프로그래밍 언어(데이터베이스 응용 프로그램)에서 사용하는 방법 정적 방식 : SQL을 애플리케이션 코드 내에서 사용 (내장 SQL: ESQL/C, ESQL/C++ 등 / SQLJ) 동적 방식 : SQL API를 사용 (SQL CLI(call level interface), ODBC, JDBC) 내장 SQL SQL 표준은 C, C++, Java, Cobol, Pascal, PL/1, Fortran과 같은 다양한 프로그래밍 언어에 대한 SQL의 내장을 정의 C, C++, Java 등을 Host Language라고 부름 내장 SQL 프로그램은 컴파일 전에 전처리기에 의해 처리되어야 함 전처리기는 내장 SQL을 API 호출로 대체, 결과 프로그램은 Host-Lan..
[DB] 05. Major Functionalities of Database Systems Views View : 특정 사용자로부터 특정 데이터를 숨기는 매커니즘을 제공 개념(conceptual) 스키마에 포함되지 않지만 사용자에게 “가상(virtual) 관계”로 보이는 모든 관계를 View라고 함 뷰의 목적 데이터 보호 사용자 편리성 제공 질의 간소화 뷰 생성 : create view 뷰_이름 as ; ( : 유효한 SQL 표현식) 뷰는 다른 테이블로부터 파생된 단일(single) 테이블 뷰는 물리적 형식이 존재하지 않음 = Virtual Relation 가상 관계 (가상 테이블) (tuple을 실제로 가지지 않음) 가상 관계와 대비되는 tuple을 가지는 테이블을 “Base Relation” 베이스 관계라고 함 뷰는 뷰를 사용하는 질의에서 대체될 표현식을 저장함 (새 관계를 만드는 것과는 ..