일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 개인서버
- Java
- CSS
- 방화벽
- windows
- cording
- 정보처리기능사
- Mac
- 개발공부
- React
- 오답풀이
- 자격증
- 프로그래밍 언어론
- git
- WPF
- Developer
- 개발
- 매크로
- bootcamp
- knockon
- study
- 220821
- 홈서버
- html
- 프로그래밍언어론
- plan
- php
- 외부접속
- CodeIgniter
- C
- Today
- Total
목록분류 전체보기 (40)
bunta의 보조기억장치
의미론 → 프로그램의 내용적인 효과를 정의 → 프로그램 실행 시 어떤 일이 일어나는지 그 의미를 기술 → 구문으로 표현하기 어려운 제약사항을 기술하기도 함 의미의 표현 → 일반적으로 자연어 문장으로 표현하나 명확성이 부족 → 의미의 엄밀한 표현을 위한 다양한 기법 개발(형식 의미론) 형식 의미론 정적 의미론 → 프로그램을 수행하기 전 의미가 맞는지 파악하는 방법 → 주로 타입 검사 수행에 활용 → 대표적인 방법: 속성 문법 동적 의미론 → 프로그램 수행 시 나타나게 될 의미를 표현하는 방법 → 대표적인 방법: 기능적 의미론, 표기적 의미론, 공리적 의미론 등 * 속성 문법 → 비단말 기호마다 타입 속성이 있다고 가정하고 이에 대한 규칙을 정의 기능적 의미론 → 추상기계의 상태를 바꾸는 것으로 수행 의미를..
구문론 → 프로그램의 표면적인 구조를 정의 → 정의된 구문을 통해 모든 정상적인 프로그램을 도출 → 작성된 프로그램이 정의된 구문에 맞는 프로그램인지 확인 구문의 표현 → 구문의 정의는 문법을 활용하여 명확하게 표현 → 일반적으로 프로그래밍 언어에서는 문맥 자유 문법을 이용 * 문맥 자유 문법: 문맥하고 상관이 없는 문법 예로 변수는 문법과 상관없이 아무 위치에서 정의되어도 됨 문맥 자유 문법(CFG: Context-Free Grammar) 구성 요소 → 비단말 기호: 정의될 대상 ex) ::= if then → 단말 기호: 언어에서 직접 사용되는 표현 ex) ::= if then → 시작 비단말 기호: 언어에서 독립적으로 사용될 수 있는 단위 ex) ::= if then 은 비단말 기호이면서 시작 비단..
언어의 형식적 정의 구문론과 의미론을 통해 언어를 엄밀하게 정의 구문론(syntax) → 문장이 구성되는 방식에 대해 연구 의미론(semantics) → 문장이 나타내는 의미에 대해 연구 ex) 나는 너를 사랑한다. → 구문: 주어 + 목적어 + 서술어 → 의미: 화자가 청자를 몹시 아끼고 귀중히 여김 ex) I love you → 구문: 주어 + 동사 + 목적어 → 의미: 화자가 청자를 몹시 아끼고 귀중히 여김 프로그래밍 언어의 형식적 정의 프로그래밍 언어의 명확한 구문과 의미를 정의 이를 통해 명확한 사용체계를 제공 ex) PRINT "GCD is"; A → 구문: PRINT "출력할 내용"; 변수 → 의미: 출력할 내용과 변수의 값을 순차적으로 출력 ex) printf("GDC is %d", a);..
프로그래밍 패러다임의 특징 객체지향 패러다임 → 객체 사이의 통신을 통해 계산을 표현 함수형 패러다임 → 함수의 적용을 통해 계산을 표현 논리 패러다임 → 논리식의 진위를 증명하는 과정을 통해 계산을 표현 한국방송통신대학 [프로그래밍 언어론] 강의 필기입니다.
명령형 프로그래밍 프로그램 → 일련의 명령어 나열 장점 → 처리 순서대로 나열되어 있어 프로그램을 쉽게 이해할 수 있음 단점 → 프로그램이 복잡한 경우 가독성이 나빠지므로 효과적으로 다루지 못함 절차형 프로그래밍 프로그램 → 서브루틴이라는 절차의 집합 장점 → 재귀호출을 사용하여 프로시저를 간단하게 정의 구조화 프로그래밍 → goto 없이 프로그램을 작성하는 방법 즉, 작업이 끝나면 호출이 발생했던 원래 자리로 돌아가는 것 → 블록과 서브루틴을 이용 → 구조화된 제어문을 이용 객체지향 프로그래밍 프로그램 → 서로 통신할 수 있는 객체(object)의 집합 → GUI 개발에 큰 획(Smalltalk) → 프로그램 재사용 편의로 S/W 생산성에 크게 기여 객체의 개념 → 상태를 유지하며 외부의 요청에 반응하..
프로그래밍 패러다임 VS 프로그래밍 언어 패러다임 프로그래밍 패러다임 → 프로그램을 작성하는 방식이나 스타일 프로그래밍 언어 패러다임 → 해당 프로그래밍 언어가 지원하는 프로그래밍 패러다임 → 일반적으로 프로그래밍 언어는 여러가지 프로그래밍 패러다임을 지원 프로그래밍 패러다임의 양립성 → 다양한 프로그래밍 패러다임은 서로 양립할 수 있음 → 새로운 패러다임의 등장으로 이전에 있던 패러다임이 더욱 공고히 완성 → 주류 프로그래밍 패러다임이 바뀜에 따라 이를 언어가 수용하는 형태로 변화 ex) Python 명령형 패러다임, 절차형 패러다임만 지원 → 함수형 패러다임, 객체지향 패러다임을 포함하여 지원 한국방송통신대학 [프로그래밍 언어론] 강의 필기입니다.
패러다임이란 무엇인가? → 한 시대의 견해나 사고를 규정하는 양식, 규범 체제 등을 통칭하는 말 → 토머스 쿤은 과학 분야의 발전에 따라 이전의 믿음과 체계가 흔들리고 새로운 체계로 대체되는 과정에 주목 → 패러다임 전환 ex) 천동설 → 지동설 저축이 미덕 → 소비가 미덕 → 패러다임이 바뀌는 것을 패러다임 전환, 패러다임 시프트라고 함 프로그래밍 패러다임 → 프로그램을 작성하는 전형적인 방식 → 특정 언어에 종속되지 않고 프로그래머가 추구하는 프로그램 작성 방식에 따라 달라짐 즉 A언어를 사용하더라도 B언어나 C언어에서 작성하는 방식으로 작성할 수 있다는 뜻 프로그래밍 패러다임의 변화 명령형 프로그래밍 패러다임 → 주어진 데이터에 어떤 연산을 어떤 순서로 처리할지 결정하는 것이 중요 → CPU의 작업..
프로그래밍 언어의 요구사항 및 설계 원칙 - 요구사항 표현 풍부성(expressiveness) → 프로그래머의 아이디어를 표현할 수 있어야 함 유지 보수성(maintainability) → 변화에 쉽게 대처할 수 있어야 함 실행 가능성(executability) → 컴퓨터에서 실행할 수 있어야 함 - 설계 원칙 규칙성(regularity) → 언어의 기능이 잘 조합될 수 있어야 함 * 일반성, 직교성, 일관성 * 일반성: 3 > 1의 크기 비교는 가능하지만 a=3, b=1일 때 a > b 의 크기 비교가 가능한지의 여부 즉 숫자 이외에 데이터를 저장하고 있는 구조체에 대해서도 같은 기능을 사용이 가능하면 일반성이 좋다고 표현 추상화 지원(support of abstraction) → 실세계의 대상을 추상..