프로그래밍언어론

CS/프로그래밍언어론

[프로그래밍언어론] 13. Subprograms

어떤 요소를 추상화하는 기본적인 개념이 2가지가 있다. 1. Process abstraction함수와 같이 어떤 기능(절차)의 추상화를 말한다. 2. Data abstraction객체지향 프로그래밍의 클래스같이 데이터를 하나로 추상화하는 것을 말한다. 이번 글에서는 process abstraction에 대해서 더 깊게 파보자. Subprogram서브프로그램은 말 그대로 프로그램을 구성하는 하위 프로그램이다.서브 프로그램은 반드시 맨 처음부터 시작한다. (중간부터 시작x)즉, 진입점이 하나밖에 없는 single entry point 를 가진다. 프로그램을 호출하는 프로그램을 caller, 호출당하는 프로그램을 callee 라고 한다.callee가 실행되는 동안에는 caller가 멈춰있고, callee가 실..

CS/프로그래밍언어론

[프로그래밍언어론] 12. Expression & Assignment Statements

Expression모든 프로그래밍 언어는 수식을 갖고 있을 수 밖에 없다. (프롤로그조차도 포함했으니)수식을 통해 계산한 결과 값을 assignment statement를 통해 변수에 저장한다. Arithmetic Expression수식 중에 제일 간단한 것은 산술 수식이다.산수식은 operator, operand, 괄호, 함수 호출로 구성된다. 대부분의 언어에서 이항연산자는 infix 지만, 일부 언어에서는 prefix 를 사용하기도 한다. (LISP)당연히 postfix를 사용하는 언어도 있다.. 연산자는 크게 단항(unary), 이항(binary), 삼항(ternary) 연산자로 구분된다.피연산자 개수가 12개가 될 수도 있고, 행렬이 될 수도 있고.. 언어마다 다양하다. Arithmetic Exp..

CS/프로그래밍언어론

[프로그래밍언어론] 11. Logic Programming Language (Prolog)

Logic Programming Language기호 논리(symbolic logic) 에 기반을 두고 있는 프로그래밍 언어다.논리적으로 맞는 답을 도출하는 것이 목표이다.논리를 선언하는 것에 신경을 쓰고 (Declarative) 그 도출과정은 신경쓰지 않는다. (procedural)(답이 뭐가 나와야 한다고만 할 뿐, 어떻게 내는지는 신경쓰지 않는다.) 논리형 프로그래밍 언어는 다음과 같은 것들로 구성된다. Proposition (명제)logical statement 로, 참 / 거짓으로 분류가 된다.오브젝트와 오브젝트 간 관계로 구성되어 있다. 오브젝트는 상수, 변수로 구성된다.상수는 오브젝트 자체를 나타내는 기호이다.변수는 명령형 언어의 변수보다, 함수형 언어의 변수에 가깝다. 다른 시점에 다른 오브..

CS/프로그래밍언어론

[프로그래밍언어론] 10. Data Type

명령형 언어는 변수가 중요하다.이때 변수는 6가지 속성을 가질 수 있었다.address, name, value, type, scope, lifetime 이다.이번 글에서는 이 중 type 에 대해 자세히 정리하려고 한다. Data Type데이터 오브젝트와, 그 오브젝트들에 대해 미리 정의된 연산들을 모은 collection을 정의한 것을 말한다.descriptor는 변수의 attributes 의 collection을 말한다.하나의 오브젝트는 사용자 정의 타입의 인스턴스를 나타낸다. 모든 데이터 타입에 대한 설계시 문제는 어떤 연산들을 정의해야 하는지, 그리고 이들의 동작을 어떻게 명시할 것인지가 중요하다.과연 이것이 필요한 데이터 타입인가, 어떤 오퍼레이션이 필요한가, 어떻게 이들을 정확하게 표시할 것인..

CS/프로그래밍언어론

[ Lex/Yacc ] 내가 만든 테스트케이스 (테스트 파일 포함)

테스트 파일아래 테스트 케이스를 일일히 입력으로 넣고 빼는 게 불편해서 테스트 케이스 파일과 스크립트를 작성했다.https://github.com/kckc0608/Programming-Language-HW/tree/main/HW2 Programming-Language-HW/HW2 at main · kckc0608/Programming-Language-HW프로그래밍 언어론 과제 레포. Contribute to kckc0608/Programming-Language-HW development by creating an account on GitHub.github.com위 레포지토리에 테스트 케이스 파일들을 저장하였다.A. Function함수 정의, 함수 사용 (내장 함수 포함) 횟수 카운팅함수가 전방 선언되고..

에버듀
'프로그래밍언어론' 태그의 글 목록