4차산업혁명의 일꾼/Java&Spring웹개발과 서버 컴퓨터

[프로그래밍 언어론] 주요 용어

르무엘 2023. 1. 5. 23:12

- 프로그래밍 언어 : 컴퓨터가 읽을 수 있고 사람이 읽을 수 있는 형식으로 계산을 서술하는 표기 체계

- 추상화 : 속성들의 특징적인 일부분만을 가지고 주어진 작업이나 객체를 표현하고, 그들의 공통점을 추출하여 표현하는 것

- 구문론 : 언어의 형식적인 구조를 기술

- 의미론 : 언어의 내용인 의미를 기술. 형식화된 정의가 어려움

- 기계어 : CPU가 수행해야 할 작업을 CPU가 이해할 수 있는 일련의 2진법의 명령 코드로 작성하는 언어

- 저급언어 : 자연언어와는 차이가 큰 구문을 사용하여 사람이 이해하기 보다는 컴퓨터 내부구조에 의존적인 언어. 어셈블리 언어

- 고급언어 : 추상화를 통해 기계에 독립적인 프로그램 설계가 가능한 언어이며 사람이 이해하기 쉬운 언어

- 직교성 : 프로그래밍 언어의 구성요소가 각각의 의미를 지닌 채 결합될 수 있음

- 어휘토큰 : 프로그래밍 언어의 어휘 구조를 의미. 프로그래밍 언어 알파벳 문자로 구성된 단어 하나가 하나의 어휘 토큰임

- 문맥자유문법 : 문맥과 무관하게 언제나 동일하게 적용되는 문법

- 문맥의존문법 : 문맥에 따라 다르게 적용될 수 있는 문법

- 파스트리 : 주어진 BNF에 의해 어떤 표현이 생성될 수 있는지 확인하기 위해 작성하는 트리

- 단말 노드 : 트리의 노드 중 자식을 갖지 않는 노드

- 현수(dangling) else : 중청된 if문 마지막에 있는 하나의 else

- 컴파일 : 입력 언어를 목적 언어로 번역

- 인터프리트 : 입력 언어를 바로 해석하여 실행

- 바인딩 : 이름에 어떤 속성을 연결하는 과정

- 선언 : 실행시 사용될 자료의 속성을 컴파일러 등에게 알려주는 것

- 할당문 : 변수의 내용을 변경할 수 있는 연산

- 표현식 : 하나 이상의 피연산자를 가지고 자료값의 계산을 기술하는 것

- 강자료형 : 자료형에 관한 모든 특성이 컴파일 시간에 확정되는 프로그래밍 언어

- 리터럴 : 프로그래머가 작성한 구성원

- 다형성 : 한 연산자가 속성은 같은데 피연산자의 자료형에 의존해 실제 기계에서 다른 것으로 간주되는 것

- 해시 함수 : 임이의 길이의 입력 데이터를 고정된 작은 크기의 해시 코드로 변환하는 함수

- 힙 : 동적으로 객체가 할당되는 기억장소 영역

- 별명 : 동일한 주소를 갖는 변수들의 서로 다른 이름

- 복합문 : 일련의 문장 집합을 단위 문장으로 표시하는 형태

- 영역 구멍 : 전역선언이 지역선언 때문에 보이지 않는 현상

- 가시성 : 선언의 바인딩이 적용되어 선언된 식별자를 참조할 수 있는 프로그램 부분

- 지역성 : 이미 참조된 부분은 이후에도 계속 참조될 가능성이 높음

- 환경 : 지역 단위로 묶여진 장소와 관련된 모든 식별자를 정의

- 쓰레기 수집 : 프로그램에서 더 이상 참조가 없더라도 계속 기억장소에 존재하게 하다가 새 기억장소가 요구 될 때 이들 기억장소를 회수하여 재생시키는 것.

- 재귀호출 : 호출된 함수의 내부에서 다시 같은 함수가 호출되는 것

- 활성화 레코드 : 단위 프로그램 실행에 필요한 모든 정보를 가지고 있는 것

- 참조 환경 : 단위 프로그램에서 선언된 지역변수와 사용 가능한 비지역변수로 구성

- 스택 : 한쪽 끝에서만 삽입과 삭제가 가능한 자료구조. 가장 나중에 삽입된 원소가 가장 먼저 삭제됨

- 힙 : 동적으로 객체가 할당되는 기억장소 영역

- 바인딩 :이름에 어떤 속성을 연결하는 과정

- 프로시저 : 함수와 서브루틴을 구별하지 않는 부프로그램을 의미

- 형식 매개변수 : 부프로그램이 실행되는 동안에 사용되는 매개변수

- 실 매개변수 : 부프로그램을 호출할 때 사용된 원래의 식 또는 이름

- r-value : 보통 할당문의 오른편에 위치하는 식의 값을 의미. 변수의 경우 주소는 l-value를, 그 곳에 저장된 값은 r-value를 의미

- 부작용 : 실행에서 야기되는 간접적인 결과들을 모두 의미. 일반적으로는 지역 변수 이외의 변수값을 변화시키는 것을 의미

- 중복정의 : 한개체(식별자, 함수이름, 연산자 등등)가 두가지 이상의 개념으로 사용되는

- 캡슐화: 부적당한 사용으로부터 자료형을 보호하기 위한 기법으로, 사용자는 윈도우를 통한 사용만 허락됨

- 생성자 : 인스턴스 생성 시 필요한 매개변수의 제공과 초기화를 위해 사용되는 것으로, 클래스와 같은 이름임

- 패키지 : Java에서 글래스 상위 수준의 두 번째 캡슐화 구조로, 한 개 이상의 클래스 정의를 가짐.

 

[프로그래밍언어론] 정리하기

- 프로그래밍 언어론은 프로그래밍 언어의 공통점과 차이점, 그리고 프로그래밍 언어를 설계하는 규칙을 배움으로써 프로그래밍 언어에 대한 근본적인 이해를 돕는다.

- 프로그래밍 언어는 속성들의 특징적인 일부분만을 이용하여 작업이나 객체들을 표현하며, 추상화를 통해 표현된다.

- 프로그래밍 언어는 명령형 언어(절차 언어), 함수형 언어(적용형 언어), 논리형 언어(선언적 언어), 객체지향언어로 구분된다.

- 프로그래밍 언어는 형식적인 측면에 대한 언어구문론과 의미 해석적인 측면의 언어의미론의 양면적인 방법으로 정의된다.

- 프로그래밍 언어의 설계는 실행의 효율성 , 일반성과 직교성, 획일성, 표현력, 정확성, 컴퓨터 독립성, 안전성, 일관성, 확장성, 부분성을 고려해야 한다.

- 예약어는 미리 정의된 식별자 중에서 일부를 재정의 할 수 없도록 정의하여 사용하는 것이다.

- 구문의 형식 정의란 그 언어를 가지고 정상적인 프로그램을 작성하는 규율들의 집합.

- 문맥자유문법이란 모든 생성 규칙에서 정의될 대상이 하나의 비단말기호만으로 구성된 문법이다.

- 파스트리는 주어진 BNF에 의해 어떤 표현이 생성될 수 있는지 확인하기 위해 작성하는 트리로, 단말 노드의 나열이 주어진 BNF로 생성 가능한 표현이 된다.

- 모호한 문법을 제거하기 위해 비단말 기호와 문법규칙을 추가하거나, 우결합 규칙이나 좌결합 규칙을 적용한다.

- 단순형에는 수치형,논리형,문자형이 있다.

- 열거형은 객체들을 리스트로 정해주며 연산으로 동등 및 순서 관계와 할당 연산을 허용한다.

- 배열에 대한 정보를 저장하는 명세표는 배열이름, 원소의 형, 원소의 길이, 시작주소, 차원수, 첨자 상한 및 하한 정보를 갖는다.

- 블록은 내부에서 식별자를 선언하여 새로운 프로그램 환경을 설정할 수 있는 특별한 언어구조를 제공한다.

- 프로그래밍 언어들은 식별자의 영역이 번역시에 결정되는 정적 영역 규칙을 따르는 언어로 구별된다.

- 블록 구조를 통한 영역의 개념은 프로그램의 지역성을 높여주고 프로그램의 구성을 단계적으로 세분화하는데 도움을 준다.

- C언어에서 자동 할당, 정적할당, 프로그래머지정 할당 등을 이용하여 기억장소 할당의 형태를 정한다.

- 정적기억장소 할당과 동적 기억장소 할당의 구분은 할당된 기억장소 크기가 변경되는지의 여부로 결정된다.

- 스택기반 기억장소 할당은 일종의 동적 기억장소 할당 기법으로 변수들은 블록 또는 부 프로그램이 활성화될 때 기억장소를 할당하는 기법이다.

- 준정적 변수는 활성화 레코드의 차감거리가 번역시간에 결정되더라도 실행시간의 단위 프로그램이 활성화되는 시점에서 바인딩 된다.

- 단위 프로그램이 활성화되는 시점에서 지역변수가 모두 생성되며, 지역변수가 요구하는 기억장소의 크기가 결정되는 변수를 준동적 변수라 한다.

- 활성화 레코드가 활성화되는 시점에서도 활성화 레코드의 크기를 알 수 없는 변수를 동적 변수라 한다.

- 프로시저는 프로시저 이름, 매개 변수 리스트, 몸체, 실행환경의 네가지 요소로 구성된다.

- 형식 매개변수란 부프로그램이 실행되는 동안에 호출자가 보내준 식 또는 다른 이름을 대신하여 그 프로그램에서 사용되는 이름을 의미한다.

- 실매개변수란 원래의 식 또는 이름을 의미한다.

- 값호출 기법은 값전달 기법이라고도 하는데, 이 기법은 형식 매개변수에 해당되는 기억장소를 별도로 유지하고, 실 매개변수에 해당되는 주소를 보내면 이의 r-value를 구하여 형식 매개변수의 기억장소에 복사하여 사용하는 방법이다.

- 이름 호출은 이름 전달 기법이라고도 하는데, 이 기법은 형식 매개변수의 이름이 사용될 때마다 그에 대응되는 실 매개변수 그 자체가 사용된 것처럼 간주하는 방법이다.

- C++는 클래스를 통해 추상자료형을 지원한다. 클래스에서 정의된 자료를 데이터 멤버, 클래스에서 정의된 함수를 멤버함수라 부른다.

 

LIST