본문 바로가기

프로그래밍언어론31

[프로그래밍언어론] 31. OOP 개념 객체(Object) 객체 : 데이터, 작업을 모두 캡슐화하는 컨테이너 ADT 변수 : 해당 데이터만 나타낸다. 변수 자체를 사용하여 작업을 호출 void increment(Counter c) 객체의 데이터 항목 : 인스턴스 변수(instance variables) 작업 : 메서드(method) 메소드 호출(Method Invocation) 객체에 대한 작업 실행은 객체에 메시지를 전송하여 수행 object.method(params) 객체에 대한 메소드 호출 객체에게 메소드를 호출하도록 지시 객체 자체는 메소드의 암시적 매개변수로 간주될 수 있다. 클래스(Class) 클래스 : 객체 집합의 모델 클래스가 있는 언어에서는 모든 객체가 클래스에 속한다. 객체는 클래스의 인스턴스로 간주될 수 있다. 객체는 해당.. 2023. 11. 6.
[프로그래밍언어론] 30. 데이터 추상(Data Abstraction) 데이터 추상화(Data Abstraction) 물리적 시스템은 한 가지 타입만 처리 : 비트 문자열(bit strings) 고급 언어는 다양한 값에 대한 "래핑(wrapping)"을 제공 타입 : 값 + 작업 데이터 추상화 : 값은 하나로 결합될 수 있으며 적절한 작업을 통해 새롭고 더욱 추상적인 유형을 형성 가능 이 새로운 유형을 사용하여 현실 세계에서 더욱 복잡한 객체를 표현 가능 예) 레고 작품을 만들 때 아래 구조부터 쌓아서 올려서 합친다. 장점 복잡한 데이터 구조를 쉽게 처리한다. 세부 사항에 신경 쓸 필요가 없다. 인터페이스(Interface)와 구현(implementation)의 분리 구현(implementation)을 몰라도 인터페이스와 함께 사용 가능 정보 숨기기(Information H.. 2023. 11. 6.
[프로그래밍언어론] 29. 스크립팅 언어(Scripting Languages) 스크립팅 언어 컴퓨터를 실제로 사용하려면 여러 프로그램을 결합해야 하는 경우가 많다. 예) 디렉토리의 모든 로그 파일에서 특정 유형의 오류 메시지를 인쇄 A : 디렉터리의 모든 로그 파일을 나열 B : 목록에서 각 로그 파일을 읽기 C : 해당 유형의 오류 메시지를 찾기 D : 발견된 메시지를 특정 형식으로 인쇄 Glue 언어 스크립팅 언어는 Glue 언어라고 불린다. 목표를 달성하기 위해 여러 프로그램을 함께 연결(Glue) 두 조상 : 쉘/터미널(sh, bash) + 텍스트 처리(sed, awk). 범용 스크립팅 언어 Perl, Python, Ruby, PowerShell, AppleScript 등 웹용 PHP, JSP, Ruby on Rails, JavaScript, TypeScript 등 공통적인.. 2023. 11. 6.
[프로그래밍언어론] 28. 프로그래밍 언어 패러다임(PL Paradigm) 프로그래밍 언어 패러다임(PL Paradigm) 프로그래밍 언어가 따르는 원칙과 전략 예) 절차적, 명령적, OOP, 기능적, 논리 등 하나의 프로그래밍 언어는 여러 패러다임을 따를 수 있다. Java - 명령형 및 객체 지향 언어 패러다임(Language Paradigms) 프로그래밍 언어를 그룹화하거나 분류하는 방법은 매우 다양하다. 명령형(Imperative) 절차적(procedural) - Fortran, Pascal, Basic, C 객체 지향(object-oriented) - Smalltalk, C++, Java 스크립팅 언어(scripting languages) - Perl, Python, JavaScript 선언형(Declarative) 함수형(functional) 프로그래밍 - Schem.. 2023. 11. 6.
[프로그래밍언어론] 27. 자료형(Data Types) 자료형(Data Types) 데이터 타입은 동일한 유형의 값(value)과 조작할 값에 적용할 수 있는 연산자(operation) 집합이다. 동종(homogeneous) : 같거나 유사한 종류(↔ 이종). 값 + 연산자 : 데이터 타입은 값에 관한 것뿐만 아니라 연산도 포함된다. 예) 정수, 문자열, 배열에 대해 서로 다른 연산이 필요하다. 타입 시스템(Type System) 프로그래밍 언어에는 데이터 유형을 관리하기 위한 자체 타입 시스템(정보 및 규칙)이 있다. 타입 시스템은 일반적으로 다음으로 구성된다. 미리 정의된 타입의 세트 새로운 타입의 정의를 지원하는 메커니즘 동등성 규칙(equivalence rules), 호환성 규칙(compatibility), 타입 추론(type inference)과 같.. 2023. 10. 17.