본문 바로가기

반응형

프로그래밍언어

프로그래밍 언어의 역사 (Computer Language History) Éric Lévénez http://www.levenez.com/lang/ http://www.levenez.com/lang/history.html The History of Programming Languages http://www.oreilly.com/news/graphics/prog_lang_poster.pdf Wikipedia http://en.wikipedia.org/wiki/Programming_language 더보기
프로그래밍 언어의 요건 ∙ 좋은 프로그래밍 언어가 갖추어야 할 조건 (1) 프로그래밍 언어의 개념이 분명하고 단순해야 하며 일관성이 있어야 한다. (2) 신택스가 분명해야 한다. (3) 자연스럽게 응용할 수 있어야 한다. (4) 추상(abstraction)을 지원할 수 있어야 한다. (5) 프로그램 검증이 용이하여야 한다. (6) 적절한 프로그램 작성 환경이 갖추어져 있어야 한다. (7) 프로그램이 호환성이 있어야 한다. (8) 효율적이어야 한다. 더보기
언어 번역 (programming language translate) ∙ 현재의 컴퓨터는 저수준의 언어인 기계어만을 바로 실행할 수 있으므로 고수준의 프로그래밍 언어로 작성된 프로그램은 번역기(translator)를 거쳐야만 실행될 수 있다. ∙ 번역기의 방식으로는 인터프리터(interpreter) 방식, 컴파일러(compiler) 방식, 그리고 이들의 중간 방식의 세 종류로 나눌 수 있다. ∙ 인터프리터 : 주어진 프로그램과 입력 자료를 곧바로 실행시켜 결과를 출력한다. ∙ 인터프리터는 대화형 프로그램에 많이 쓰인다. 초보자라도 프로그램을 개발하기가 쉬우며 개발 기간도 단축된다. 그러나 프로그램의 실행 속도가 느리다는 단점이 있다. ∙ Smalltalk, LISP, Basic이 인터프리터 언어의 예이다. ∙ 컴파일러 : 원시 프로그램을 받아들여 목적 프로그램을 만들어낸다.. 더보기
프로그래밍 언어의 전형(Programming Language Paradigm) 1. 명령형 전형 상태의 변경에 의하여 계산을 행하여 나가는 것으로 상태란 컴퓨터 메모리의 상태를 말한다. ① 블록구조 전형 ㉠ 포트란 : 서브루틴과 전역 데이터라는 프로그램 블록을 갖춘 최초의 언어 (이제는 블록구조로 간주되지 않음) ㉡ 블록은 실행시 스택에 그 상태를 저장하여 순환이 가능 ㉢ ALGOL 60, ALGOL 68, 파스칼, C 등 ② 객체지반 전형 ㉠ 객체기반언어 : 연관된 자료와 프로시저를 하나로 묶은 객체를 지원하는 언어 ㉡ Ada, Mudola-2, Smaltalk 등이 이에 속한다. ③ 분산 프로그래밍 전형 : 여러 프로그래머가 특정 프로그램을 동시에 작성한다든지 통신망에서의 메시지 교환에 의한 통신을 지원하는 기능 등을 갖추고 있는 언어 전형2. 선언형 전형 ① 함수 프로그래밍 .. 더보기
신택스와 시멘틱스(Syntax and Sementics) 신택스(syntax, 構文) ∙ 신택스(syntax) : 언어 구성 요소의 외부적인 형태, 즉 문법에 관한 것으로서 언어의 구성 요소들을 결합하여 다른 요소를 만드는 방법을 설명. ∙ 언어의 신택스 : 공식적 정의로 표현되는 경우가 많으며 대부분 문맥무관형 문법(context-free grammar)으로써 정의되고 있다. ∙ 어휘 구조(lexical structure) : 프로그래밍 언어의 어휘 구조는 언어에서 사용할 수 있는 단어의 구조. ∙ 언어의 단어 : 보통 토큰(token). (예 : ‘if', '(', '+' ..) 시멘틱스(sementics, 意味) 프로그램이 무엇을 어떻게 수행할지 나타내 주며, 특정 기능의 의미가 다른 부분과의 상호연관에 의해서만 정확히 설명되는 경우가 많아 정확한 정의가.. 더보기
객체지향언어(Object Oriented Language) I. C++의 다형성기능 템플리트구조 - 일반화 추상 자료형 - 매크로 대치구조이므로 사용시마다 동일한 템플리트 코드가 만들어짐II. 객체지향 프로그램의 개념 역사 - 1960년대 Simula 67이 기원 - 1980년 Smalltalk80에서 완전한 모습을 나타냄 객체 - 실세계에 존재하는 모든 것 - 자체의 정보 + 외부와 상호작용 프로그래밍 언어의 객체 - 객체기반의 언어 객체중심->객체에 필요한 연산을 요청 - 프로시저중심의 언어 연상중심->연산이 데이터를 처리 - 객체 : 추상 자료형에 의해 만들어진 것. (보호화된 데이터 + 데이터에 대한 연산) 객체를 기반으로 하는 언어 분류 - 객체기반언어 단순히 추상 자료형의 객체를 정의할 수 있는 언어 - 객체지향언어 추상자료형 + 계승/부프로그램 호출.. 더보기
범위 (Scope) 실체(변수,레이블의 속성)가 그 이름(변수이름,프로시저이름,레이블이름)으로 유효하게 사용(이름으로 접근 가능)될 수 있는 프로그램의 영역. Ada에서처럼 정의하는 방법에 따라서는 범위와 가시성을 별개로 구분할 수도 있다. 블록 ALGOL60에서 최초 제시된 개념. 특정 변수가 어떤 문맥 속에서 의미를 가지는 범위. 블록구조 언어 : 블록 안에 또 다른 블록이 포함되는 것을 허용하는 언어 경계 : 부호 또는 예약어를 사용하여 지정함 변수 사용 범위 : 지역변수 : 자기 블록에서 선언된 변수 비지역변수 : 상위 블록에서 선언된 것이지만 자기 블록에서 쓸 수 있는 변수 전역변수 : 제일 바깥 쪽 블록에서 선언되어 모든 블록에서 쓸 수 있는 변수 장점 : 블록 내에서는 변수명을 자유롭게 사용할 수 있게 됨. 프.. 더보기
참조 환경과 기호 상수 (referencing environment and symbolic constant) 참조 환경(referencing environment) 명령문에서 접근할 수 있는 모든 이름(변수 이름, 프로시저 이름, 레이블 이름)들의 집합 (1) 정적 범위 규칙 언어의 참조 환경 - 지역환경 : 지역변수로 구성됨 - 비지역환경 : 비지역 변수로 구성됨 - 컴파일시 피연산자나 자료구조의 주소를 결정 (2) 동적 범위 규칙 언어의 참조 환경 - 지역환경과 활성 상태 블록 변수로 구성됨 기호 상수(symbolic constant) 모양은 변수이지만 실제로는 상수임 (1) 정적 기호상수 - 실행 이전에 값이 바인딩 됨 - 컴파일시 실제 값이 대체되며, 기억장소가 할당되지 않는 특징 - Pascal, C, Modula-2 (2) 동적 기호상수 - 실행 시의 계산된 값 바인딩 - 기억장소 할당 필요 - Ad.. 더보기

반응형