분류 전체보기 264

[Compiler]어휘분석_Lexical Analysis

본 내용은 아래의 출처에서 본것이고 허락을 맡고 포스트한다. 출처 : https://talkingaboutme.tistory.com/category/About%20Study/Compiler 먼저, 컴파일의 단계를 정리하면, 어휘분석(스캐닝) -> 구문분석(파싱) -> 의미분석(타입검사) -> 중간코드생성기-> 최적화-> 코드생성-> 종속코드 최적화 위와 같다. 첫 번째 단계인 어휘분석에 대해 정리해보자 어휘 분석이란 컴파일러를 통해 어휘나 규칙을 정해, code stream을 구분하는 요소를 Lexeme(어휘소)라고함. 컴파일러가 기본적으로 수행하는 작업 중 하나 code stream -> Lexical Analysis -> Token stream 예시: #include int main(){ printf..

[Compiler] 컴파일러 시작

컴파일러란 어떤 특정 목적에 의해서 만든 코드를 컴퓨터가 인식할 수 있도록 컴퓨터 언어로 번역해 주는 것이다. 컴파일러 : 고급언어로 작성된 원시프로그램을 기계어로된 목적 프로그램을 출력하기 위한 번역 좀 더 설명을 하자면 컴파일이란 의미가 고급 프로그래밍언어에 쓰여진 프로그램으로 소스코드에서의 오브젝트로 변환 되는것이라고 정의한다. 오브젝트코드는 컴파일러에 의해 생성된 코드를 의미한다. 소스코드는 개발자가 사용하는 언어에 따른 명령어들의 조합 -> C/C++, Java 등 명령어 실행을 위해서 기계어로 저레벨 언어로 쓰여져여 하드웨어에서 제어가 가능하다. 고레벨언어란 개발자가 사용하는 C,C++ 등의 언어라고 생각하면 되고 저레벨 언어란 기계어 또는 어셈블리어를 의미한다. 다음은 컴파일의 과정이다. 원..

[JavaScript]참조

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다. 참조, 복사 의 개념은 프로그래밍 언어에서 많이 사용된다. 복사는 말 그대로 복제한다고 생각하면 되고, 참조는 가리키는 것 이라고 이해할 수 있다. 변수의 데이터가 객체면 변수 안에는 데이터에 대한 참조 방법이 들어있다. 코드를 통해 이해해보자 -소스 코드- 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 32 33 34 35 36 37 38 39 var a ..

JavaScript 2019.06.02

[JavaScript]Object 객체

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다. Object 객체는 객체의 가장 기본적인 형태를 가지고 있다. 즉 최상위 객체이며 모든 객체들의 부모이다. Object 객체의 프로토타입은 모든 객체들의 프로토타입이다. Object 객체에서 프로토타입을 사용한 경우와 사용하지 않는 경우가 있다. 먼저 사용하지 않으면 생성자 함수와 함께 호출할때, ()안에 인자를 명시하는 특징이있다. 프로토타입을 사용하면 메서드()만으로 호출한다. 프로토타입을 이용하면 모든 객체가 사용할 수 있는 메서드이다. 단, Object..

JavaScript 2019.06.02

[JavaScript]표준 내장 객체

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다. 표준 내장 객체는 자바스크립트에서 기본적으로 가지고 있는 객체를 뜻한다. 기본적으로 프로그래밍 하는데 필요한 도구들이기 때문에 중요하다. JS파일을 보면서 'Object' , 'Array', 'String', 'Function', 'Math' 등의 키워드를 본적이 있다. 이들이 모두 자바스크립트에 기본적으로 가지고있는 객체이다. 이들의 기능을 아는것은 Reference를 참고해서 공부하면 된다. 여기서는 Array객체와 Math객체를 이용하여 간단한 랜덤 함수..

JavaScript 2019.05.29

[JavaScript]프로토타입_Prototype

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다. C++에서 포인터를 배우고 클래스를 배우게 된다. 자바스크립트에서 클로저를 알아보고 이후에 알아보는 이 프로토타입을 배우는것은 C++을 배우는 커리큘럼과 비슷하다고 생각하면 좋다. 그만큼, 클로저와 프로토타입이 중요한 내용이라고 생각하면 좋을 것 같다. 참고 및 출처 : http://insanehong.kr/post/javascript-prototype/ http://www.nextree.co.kr/p7323/ 위 링크에서 더 자세하게 프로토타입에 대해 알 수..

JavaScript 2019.05.29

[JavaScript]상속

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다. C++에서 상속은 부모 클래스의 내용이 자식 클래스에서 사용할 수 있다고 간단하게 이해할 수 있다. 이와함께 가상함수 오버라이딩, 다형성 등의 개념이 나오게 되며 객체지향 프로그래밍 이라고 한다. 자바스크립트에서 상속또한 비슷한 개념이며 여기서는 사용법만을 확인해보자 우선 상속은 로직의 재활용을 위해 사용한다. 이를 위해 'prototype' 이라는 것을 사용하며 이 내용은 다음 장에서 살펴볼 것이다. 우선은 코드를 보며 어떻게 이루어지고 동작하는지를 확인하자..

JavaScript 2019.05.29

[JavaScript]전역객체 와 this 키워드

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다. 모든 전역변수와 함수는 사실 window 객체의 프로퍼티다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 //모든 객체는 전역객체의 프로퍼티이다. //함수 앞에 '.'이 있고 그 앞에 객체(window등등)가 있고 '.'뒤의 속성임, 지금은 속성이 함수이다 이를 메소드 function f() { document.write("Hello" + ' '); } window.f(); //함수 앞에 '.'이 있고 그 앞에 객체(window등등)가 있고..

JavaScript 2019.05.27

[JavaScript]생성자와 new

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다. C++ 이나 자바를 공부한 사람들이라면 많이 봤을 것이다. C++에서 생성자는 클래스에서 생성자와 소멸자를 접하고 new키워드는 동적 할당을 할때 사용함을 알고 있을것이다. 자바스크립트에서 생성자(constructor)는 객체를 만드는 역할을 하는 함수다. 자바스크립트에서 함수는 재사용 가능한 로직의 묶음이 아니라 객체를 만드는 창조자라고 할 수 있다. *이때까지 배운 자바스크립트에서 함수란 객체이며, 객체를 만들고 '값'임을 잊지말자 객체의 구조를 재활용하기..

JavaScript 2019.05.27

[JavaScript] Closure_클로저

이 내용은 '생활코딩'에서 공부한 내용을 정리한 글이다. 자세한 내용은 https://www.opentutorials.org/course/743 이곳에서 확인할 수 있다. 모든 내용의 출처는 이곳이다. 다른 언어를 알고있는 상태로 공부한 내용이다. 대부분의 참고자료 및 설명을 참고하면서 클로저는 C언어의 포인터와 같은 맥락이라고 생각하면 좋다. 즉, 클로저는 자바스크립트에서 꽃과 같은 중요한 내용이며 어려울 수 있다. 우선 클로저를 이해하기 위해서 알아야 할 내용으로 변수의 유효범위, 외부함수와 내부함수가 있다. 변수의 유효범위는 전역, 지역으로 나누어지며 이전 게시글을 참고하자. 간단하게, 내부함수는 함수 안에 함수가 있는것이고, 외부함수는 제일 밖에 있는 함수를 말한다. 클로저는 이 내부함수가 외부함..

JavaScript 2019.05.27