728x90
반응형

CS/Programming Language 13

Parameter Passing

호출 - actual parameter 정의 - formal parameter Paramter Strategy Stack Segment and Parameters call by value - immutable arguments Positional Parameter argument 정한 순서대로 입력해라 Named ( or key word) Parameter 이름을 정해서 순서를 안 지켜도 가능하다 => Mixed Keyword and Positional Optional Parameter *를 쳐서 무한대로 올 수 있또록  Parameter 7/8 techniques • 18.3 By value - C언어 formal parameter를 호출된 메소드의 activation record 속 지역 변수로 고..

Heap Memory & Garbage Collection

Java의 String과 String builder의 메모리에 있어 차이 String은 오래 걸리는데 StringBuilder는 빠르면서도 메모리도 적게 차지한다. Dynamic Memory Allocation 로컬 변수는 스택에 올라가서 관리가 쉽지만 그 외 데이터는 힙에 올라가서 deallocation 시 많은 시간이 소요된다 static과 global,data는 loader에서 올라가지만 runtime에서 올라가는게 있다 - activation records, objects, explicit allocation, local allocation Heap Memory Management 순서 없이 막 들어가서 데이터양이 방대해지면 가비지 컬렉션 처리하느라 오래 걸림 first fit - 첫번째로 들어가..

ㄴㄹㄴㄹ

http://www.tcpschool.com/java/java_generic_concept http://www.tcpschool.com/java/java_api_wrapper 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com subclass 와 superset subclass 는 하위 클래스 superset은 하위 클래스가 최강이 됨. 가장많은 메소드를 가졌다고 생각할 수 있음 subtype polymorphism에서 (overriding) peakerstack이 안 되는 이유를 알아내기 multiple inheritance 복합기에 프린터, 복사기, 스캐너, 팩스를 다 때려넣고 싶겠지만 transmit에 있어 각각에 ..

Stack Memory

Static Binding: 객체의 타입이 컴파일 시에 결정될 때 Dynamic Binding: 런타임 시에 결정될 때 Imperative Lanuages: 메모리 위치를 그대로 노출 시킨다 "변수의 메모리 위치에 그 값을 저장하는 식" store - int a = 0 Functional Lanuage: 메모리 위치를 숨긴다 "변수를 그 값에 연결하는 식" bind - a = 0; 그래서 파이썬은 Dynamic하게 처리할 수 있다. 숫자를 담은 변수에 문자열을 담을 수 있다는 것 이로 인해 정리가 잘 안 되면 상대적으로 느릴 수 있다 Activation records function activation : 함수가 한 번 호출되어서 return 문이 나오기 전까지 메모리에 남음 (activation of ..

Semantic Analyzer: Polymorphism

"문자열 + 숫자" 파이썬은 에러지만 자바는 문자열로 이어준다. 이렇게 같은 문법에서 데이터 타입이 다를 때 어떻게 해야하는지를 명시하는 것이 polymorphism 4요소 - overloading : 하나의 함수가 데이터 타입따라 다른 기능을 가졌을 때 ex-operator - parametric polymorphsim (=generics from ML) : type 자체를 변수로 만들 수 있음 - stack이라고 했을 때, 책을 쌓거나 상자를 쌓거나 동전을 쌓거나 에 대해 하나의 타입만으로 이들을 관리할 수 있도록 - public interface Stack : Java에서는 Type Variable를 사용 - parameter coercion(numeric promotion): 강제 형 변환 ex-..

Semantics Analyzer : Type

Type Menagerie ex, in ML - primitive types : int real char - construced types : list - 수학에 기반하여 만들어짐 Constructed types ... Use Type: Type Annotator Semantic Analizy checking... - scope rules : 변수 x가 뭐냐 ? binding issue - type rules Type Annotation 타입이 무엇인지 명시해주는 문법이 무엇인지 ML은 *와 ->로 표현했음 - intrinsic type : 코드에 내포된 - BASIC (변수라고 적어야하는 경우) - extreme type : 사용자의 직접 지시가 있어야 함 - ML (파이썬에서 함수 파라미터 타입을 정..

ML: Higher-order Functions

Higher-order Functions : 함수의 매개변수 또는 반환값이 n차원인 함수 ex) quick sort Predefined Higher-order Function == builtin Curry : Curried... 파라미터가 주어지면 연속해서 적용한다. : https://en.wikipedia.org/wiki/Currying 하나의 함수를 반복대상의 모든 원소에 적용 Currying - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Transforming a function in such a way that it only takes a single argument This article is..

ML: Semantics - "Types", Polymorphism, Scope

Categories of Programming Languages Functional Languages ex) ML, Lisp 익명함수(lambda)로 표현 가능한 함수를 사용하기 Declarative Way - 커피 시킬 때 어떤 우유, 커피콩 써야할지 말하지 않고 커피 달라고만 이야기하면 나온다. state-free - 남이 작성한 코드 수정하기 좋음. 코드를 각 블록 별로 모듈화하여 다루기 때문 == side-effect/외부 영향을 받지 않는다. - 변수에 값을 저장하는 일을 최소화하자 no assignment - recursive로 반복 -> 함수 내에 지역변수를 선언할 필요가 없어짐 - base unit : 작은 함수들을 여러 개 만들어서 조합하는 것이 목적 - divide and qunquer..

Language Systems

Language Systems 사람이 이해하는 언어 : high-level language 기계가 이해하는 언어 : low-level language 어떤 프로그램이 언어가 동작하기 위해서 그 시스템을 어떻게 구현할 지 그려져야 하는데 어떻게 동작하는지에 대한 내용을 보려고 함 Specification + Implementation java의 경우 syntax는 specification, jvm은 implementation Implementation 어떻게 써야 좋은 코드인지, 그 스타일을 명시해주는 역할 Part of COMPUTER - CPU + Heatsink - RAM : random access memory (short-term) FAST - STORAGE HardDrive: Long-term ..

728x90
반응형