[프로그래밍 언어론] - 객체지향과 다형성 (完)
·
💻 Computer Science/프로그래밍 언어론
프로그래밍 언어의 추상화 프로그램은 실세계의 대상을 컴퓨터에 나타내어 문제를 해결하기 위한 것이기에 반드시 추상화 과정이 필요하다. 지금부터 추상화가 무엇인지에 대해서 알아보도록 하겠다. 추상화 (Abstraction) 추상화는 복잡한 대상을 간략하게 나타내는 것을 말한다. 추상화는 코드를 더욱 간결하게 작성하고 이해하기 쉽게 만들어주어 개발자가 더욱 효과적으로 프로그램을 관리할 수 있도록 도와준다 추상화는 대상의 관심있는 부분만 추려내는 방법과 대상의 관심 없는 부분을 삭제하는 방법을 통하여 이루어진다. 프로그래밍 언어에서 제공하는 추상화 종류는 다음과 같다. 제어 추상화(Control Abstraction): 현실에서 복잡한 제어 과정을 하나 혹은 여러 개의 간결한 이름으로 나타내는 과정이다. 주로 ..
[프로그래밍 언어론] - 서브프로그램 (Subprogram)
·
💻 Computer Science/프로그래밍 언어론
서브프로그램 정의 서브프로그램(Subprogram)이란 독자적인 입력과 출력을 갖춘 프로그램 조각을 말한다. 프로그램이 사용자의 입력을 받아 처리를 거친 후 사용가 원하는 출력을 제공하듯, 서브프로그램은 다른 프로그램의 코드로부터 입력을 받고 다른 프로그램 코드에 출력을 제공한다. 이때 서브프로그램의 입력을 인수(Arguments)라고 하고, 서브프로그램의 출력을 반환값(Return Value)라고 한다. 다만 모든 서브프로그램이 인수를 받고 반환값을 내는 것은 아니다. 서브프로그램이 가지는 특징은 다음과 같다. 한 개의 입구: 서브프로그램으로 들어가는 입구는 단 한 개이다. 여러 개의 출구: 서브프로그램에서 나가는 출구는 여러 곳이 될 수 있다. 기본 출구와 반환: 서브프로그램의 맨 끝은 자동적으로 출..
[프로그래밍 언어론] - 문장 (Statement)
·
💻 Computer Science/프로그래밍 언어론
문장 (Statement) 문장은 처리를 나타내는 표현이다. 데이터를 처리하기 위하여 프로그램은 변수, 연산, 서브프로그램 등을 이용한다. 문장은 기본적으로 선언문과 실행문으로 분류된다. 선언문(Declaration Statement): 변수명과 타입 등을 바인딩하여 이후에 해당 변수에 이용할 수 있도록 한다. 실행문(Execute Statement): 실제로 변수, 서브프로그램 등을 이용하여 데이터를 처리한다. 지금부터 실행문에 해당하는 다양한 문장들을 알아보도록 하겠다. 대입문 (Assignment Statement) 프로그램에서 가장 자주 사용되는 문장으로 변수의 값을 변경한다. 대입 연산자를 이용하여 대입 연산자의 오른쪽 부분의 값을 대입 연산자의 왼쪽에 있는 변수의 값으로 대입한다. int A,..
[프로그래밍 언어론] - 표현식 (Expression)
·
💻 Computer Science/프로그래밍 언어론
표현식 정의 표현식이란 값을 나타내는 표현이다. 이때 값은 숫자 뿐만 아니라 문자열도 해당되며 이들을 나타내는 식을 표현식이라고 한다. 표현식은 피연산자와 연산자로 구성되어 하나의 값을 나타낸다. 표현식에는 피연산자와 연산자가 반드시 모두 포함될 필요는 없다. 피연산자(Operand): 데이터 표현 자체(리터럴) 자체일 수도 있고 값이 저장된 변수일 수도 있다. 연산자(Operator): 연산을 수행하는 함수로, 기본적인 사칙연산자와 함수와 같은 값을 반환하는 서브프로그램도 포함된다. 표현식과 연산자 표현식에서 사용하는 연산자는 아주 다양하다. 그 중 대부분의 프로그래밍 언어에서 기본적으로 제공하는 연산자들에 대해서 알아보도록 하겠다. 산술 연산자 (Arithmetic Operators) 산술 연산자에는..
[프로그래밍 언어론] - 타입 (Type)
·
💻 Computer Science/프로그래밍 언어론
타입의 정의 대부분의 프로그래밍 언어에서는 데이터를 효과적으로 처리하기 위하여 "타입(Type)" 개념을 지원한다. 타입이란 처리 대상이 되는 데이터들의 집합인 "데이터 집합"과 데이터에 적용 가능한 연산의 집합인 "연산 집합"의 결합이다. 타입은 기본족으로 변수의 속성 중 하나에 해당되고, 타입이 지정되면 해당 변수는 지정된 타입의 데이터의 값만 가질 수 있고 지정된 타입의 연산 집합에 속하는 연산만 적용가능하다. 어떤 프로그램 내 모든 연산 및 함수에 대해 적용 전/후의 타입이 연산 및 함수의 정의와 일치하면 그 프로그램은 타입 안전하다고 한다. 타입 오류가 발생하지 않으면 타입 안전하다고 할 수 있다. 타입 안전성에 대한 수학적은 다음과 같다. 💡 (정의) 타입 안전성 💡 함수 $f$의 타입이 $f..
[프로그래밍 언어론] - 변수의 영역 (Scope)
·
💻 Computer Science/프로그래밍 언어론
스코프 (Scope) 변수의 영역 또는 스코프(Scope)란 프로그램에서 변수를 사용할 수 있는 범위를 의미한다. 변수는 자신의 영역 안에서만 값을 대입하거나 값을 읽어올 수 있다. 변수가 선언되는 곳이 바로 영역이 시작되는 곳이다. // 중괄호를 이용하여 블록을 나타낼 수 있다. { int x12; x12 = 2 + 5 * 2; } 블록(Block)은 영역을 구분해 주는 단위로, 프로그램 문장들의 묶음이자 변수 선언이 가능한 공간이다. 블록 안에서 선언된 변수를 지역변수(Local Variable), 블록 밖에서 선언되었으나 블록 안에서 사용될 수 있는 변수를 비지역변수(Non-Local Variable)이라고 한다. 그리고 어떤 블록에도 포함되지 않는 곳에서 선언된 변수를 전역변수(Global Var..
[프로그래밍 언어론] - 바인딩 (Binding)
·
💻 Computer Science/프로그래밍 언어론
변수 (Variable) 변수(Variable)란 데이터를 저장하거나 나중에 사용할 수 있도록 메모리를 추상화한 것이다. 변수는 네 가지의 중요한 속성을 가지는데 네 가지 속성은 다음과 같다. 변수명: 변수를 대표하는 이름이다, 식별자에 해당한다. 타입: 변수에 저장할 수 있는 데이터 집합의 종류이다. 주소: 변수가 사용하는 메모리의 위치이며, "참조(Reference)"라고도 한다. 값: 변수에 저장된 데이터이다. 변수의 값은 수행시간 동안 변경될 수 있다. 이때, 프로그램 수행 중 변수가 사용되기 위해서는 각 속성이 구체적으로 결정되어야 한다. 바인딩(Binding) 바인딩(Binding)은 언어 구성 요소의 속성이 구체적으로 결정되는 것이다. 언어 구성 요소의 속성이 결정되는 시점은 언어의 구성요소..
loading