본문 바로가기

CS/프로그래밍언어론14

프로그래밍 언어론 서브프로그램, 서브루틴, 정적 체인, 동적 체인, 디스플레이 방식 요약 정리 문제 풀이 서브 프로그램 개요 프로그램이란 컴퓨터가 실행할 명령어의 나열 -> 프로그램 실행을 통해 입력을 출력으로 바꿈 서브프로그램이란 독자적인 입력과 출력을 갖춘 프로그램 조각 서브프로그램의 입력을 인수, 서브프로그램의 출력을 반환 값이라고 함 반환 값이 없는 서브프로그램은 프로시저라고 부르고, 프로그래밍 언어 개발 초기에는 인순도 없고 반환값도 없는 형태의 서브프로그램을 서브루틴이라고 지칭했음 서브프로그램의 특징 중 하나의 입구는 서브프로그램으로 들어가는 입구는 하나라는 것 서브프로그램의 특징 중 여러 출구는 서브프로그램에서 나가는 출구는 여러 곳이 될 수 있다는 것 서브 프로그램의 맨 끝은 자동적으로 출구가 되지만, 별도의 return 문을 통해 명시적으로 서브프로그램의 출구를 지정해줄 수 있음 서브프로그램.. 2023. 12. 8.
프로그래밍 언어론 수식, 문장 내용 요약 정리 및 문제 풀이 - 방통대 기말고사 대비 수식 수식이란 값을 나타내는 표현 수식이란 피연산자와 연산자로 구성되어 하나의 값을 나타내는 표현 피연산자는 2, 'abc' 등 데이터 표현 그대로일 수도 있고 값이 저장되어 있는 변수 일 수도 있음 연산자는 연산을 수행하는 함수로 덧셈 연산자, 곱셈 연산자 등 기본 연산자, 함수일 수도 있음 수식에서 피연산자와 연산자 모두 포함될 필요는 없음 수식은 값을 나타내는 표현이며, 문장은 처리를 나타내는 표현. 문장 안에 수식이 포함된다고 보면 됨 수식의 끝에 쌍반점을 찍으면 문장이 됨 문장의 끝에서 쌍반점을 뺀다고 항상 수식이 되진 않음 산순 연산자에서 +는 부호 유지를, -는 부호를 반대로를 나타냄 언어에 따라 추가적인 산술 연산자가 있는데 파이썬의 경우 //가 몫을 나타내고, %가 나머지를.. 2023. 12. 8.
프로그래밍 언어론 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.