본문 바로가기

전체 글669

프로그래밍 언어론 2019 2학기 기말고사 문제와 정답 - 방통대 1. 다음 중 설명이 바르게 짝지어진 것은? 구문론 - 프로그램의 내용적인 효과를 정의 의미론 - 프로그램의 표면적인 구조를 정의 구문론 - 프로그램 작성시 어떤 형태로 작성해야 하는 지를 기술 의미론 - 문자들을 모아 최소한의 의미를 갖는 단어를 기술 정답: 3 2. 구문을 표현하는 방법과 거리가 먼 것은? BNF EBNF WORA 구문 도표 정답: 3 3. EBNF로 표현된 다음 구문을 실수로 BNF 표현으로 간주하고 해석하였다. EBNF일 때의 해석과 달라진 부분은? 2023. 12. 8.
프로그래밍 언어에서 타입, 복합 타입 정리 및 문제 풀이 타입 데이터 집합이란 처리 대상이 되는 데이터와 집합으로 예를 들어 정수형의 데이터 집합은 {..., -2, -1, 0, 1, 2, ...} 연산 집합이란 해당 데이터에 적용 가능한 연산의 집합으로 예를 들어 정수형의 연산집합이란 {+, -, ...} 타입이란 변수의 속성 중 한가지 서브프로그램의 인자와 반환에도 이용함 연산의 안전성 보장을 위해 필요 프로그램은 "타입 안전하다"라는 표현은 프로그램 내 모든 연산 및 함수에 대해 다음 성질을 만족하는 경우 : 함수 f의 타입이 f(x): A-> B 라면 모든 a 포함 집합 A에 대해 f(a) 포함집합 B이어야 함 -> 즉 타입 오류가 발생하지 않는다는 의미 강타입 언어란 모든 타입 오류를 검출하는 언어 (Haskell, Ml, Java - 타입 캐스팅 제.. 2023. 12. 8.
변수의 영역 , 정적 영역, 동적 영역, 지역 변수, 정적 영역 규칙 - 방통대 프로그래밍 언어론 기말 고사 기출 유사 문제 풀이 변수의 영역 프로그램에서 변수를 사용할 수 있는 범위를 변수의 영역이라고 함 즉 변수는 자신의 영역 안에서만 값을 대입하거나 값을 읽어올 수 있음 영역의 시작은 변수가 선언되는 곳임 수명의 시작은 동적 바인딩의 경우 변수 선언 위치이며 정적 바인딩의 경우 프로그램이 수행되는 시점임 블록은 프로그램 문장들의 묶음 블록은 영역을 구분해주는 단위 블록 안에서 변수 선언이 가능하며 영역의 끝은 블록이 끝나는 지점임 Algol 60 -> 복합문 (beigin ~ end) C, C++, Java -> 복합문 ({~}),함수, 클래스 Pascal -> 복합문 (begin ~ end)는 블록이 아님 지역 변수: 블록 안에서 선언된 변수 비지역 변수: 블록 밖에서 선언되었지만 블록 안에서 사용될 수 있는 변수 지역변수와.. 2023. 12. 8.
프로그래밍 언어론 변수와 바인딩 기말고사 대비 문제 풀이 및 요약 정리 변수와 바인딩 변수란 데이터를 저장하거나 나중에 사용할 수 있도록 메모리를 추상화한 것 변수의 속성 4가지 : 변수명, 타입, 주소, 값 변수의 속성에서 변수명이란 변수의 이름, 식별자 변수의 속성에서 타입이란 변수에 저장할 수 있는 데이터 집합의 종류, 자료형 변수의 속성에서 주소란 변수가 사용하는 메모리의 위치 ,' 참조' 변수의 속성에서 값이란 변수에 저장된 데이터. 수행시간 동안 변경될 수 있음 변수의 수명이란 변수가 값을 저장하기 위해 기억장소를 할당받고 있는 기간 변수의 영역이란 프로그램에서 사용되는 식별자가 의미를 가질 수 있는 범위 배런의 표기법은 가장 왼쪽에 변수명, 가운데에 타입, 그리고 가장 오른쪽에 주소를 표기하고 주소 안에 값을 표기함으로써 변수를 표현 바인딩이란 언.. 2023. 12. 8.
프로그래밍 언어의 구현 , 파스트리, 구문 트리, 순환 하강 구문 분석기 관련 문제 - 방통대 기말 시험 대비 프로그래밍 언어의 구현 프로그래밍 언어 정의란 어떤 프로그램이 올바른 형태인지, 또 올바른 형태의 프로그램을 실행하였을 때 어떻게 실행되는 것이 올바른 것인지 규정하는 것을 뜻함 프로그래밍 언어의 형태에 관한 규정을 구문, 실행 결과에 관한 규정을 의미라고 함 프로그래밍 언어의 구현이란 그 프로그래밍 언어로 작성된 프로그램을 수행하는 프로그램 프로그래밍 언어 L의 구현 -> 1) PL이 L의 구문 규칙을 따르는 올바른 프로그램인지 검사 2) 올바른 경우 PL을 입력으로 받아서 L의 의미 규칙에 따라 실행 CPU의 함수 모형 : M[PM] = out -> M[[CompL[[PL]]]](in) = out 프로그래밍 언어 구현의 함수 모형: L[PL] = out 인터프리터 함수 모형: IntL[PL] = ou.. 2023. 12. 8.