본문 바로가기

분류 전체보기156

Bison for Windows Content: syntax analyzer, Bison (upgrade version of Yacc) Language: none Official home page: http://www.gnu.org/software/bison/bison.html Download link: http://gnuwin32.sourceforge.net/packages/bison.htm Download file: 2016. 1. 31.
PHPRequest.java Content: the class to request PHP application from Java or Android Language: Java Official home page: noneDownload link: none Download file: 2016. 1. 31.
Flex for Windows Content: lexical analyzer, Flex (upgrage version of Lex) Language: none Official home page: http://flex.sourceforge.net Download link: http://gnuwin32.sourceforge.net/packages/flex.htm Download file: 2016. 1. 31.
FullCanendar Content: calendar library Language: HTML5, Javascript(jQuery), CSS Official home page: http://fullcalendar.io/ Download link: http://fullcalendar.io/download Download file: none 2016. 1. 31.
Windows 버전 Flex(Lex) 설치 방법 1. http://gnuwin32.sourceforge.net/packages/flex.htm 에 접속한다. 2. Complete package, except sources를 다운로드한다. 3. 설치 마법사의 진행에 따라 Flex를 설치한다. 설치가 끝나면 환경변수를 설정해야하므로, 설치 경로를 적절하게 설정한다. 4. 시작 메뉴>컴퓨터 항목에서 마우스 오른쪽>속성>고급 시스템 설정>환경 변수를 클릭한다. 5. 시스템 변수에서 Path 항목을 편집한다. 6. 변수 값의 가장 뒤에 세미콜론(;)이 없으면 ;과 Flex.exe (Flex가 설치된 폴더의 bin 폴더에 존재)가 설치된 경로를 변수 값의 가장 뒤에 추가한다. 기본 설정 경로에 설치했다면, C:\GNU\GnuWin32\bin이다. 이 예시에서는 .. 2016. 1. 31.
[컴파일러] - 어휘 분석 (Lexical analysis) III 1. 개요 이전 글에서 서술한 어휘 분석의 토큰, 정규식, 정규문법 등의 개념을 이용하여 실제로 실행이 가능한 어휘 분석기를 구현하는 과정을 설명한다. C나 Java와 같은 프로그래밍 언어를 이용하여 직접 어휘 분석기를 구현한다면 파일입출력, 문자열 처리, 정규식과 정규문법의 구현 등 실질적으로는 컴파일러와 관련이 없는 프로그래밍 작업이 어휘 분석기 구현의 대부분을 이루게 될 것이다. 그래서 이 글에서는 "Flex"라는 오픈소스 툴을 이용하여 간단하게 어휘 분석기를 구현하는 방법을 설명한다. Flex는 어휘 분석기 툴로 가장 유명한 Lex의 최신 버전이다. 2. Flex 설치 Flex는 GNU General Public License로 공개된 소프트웨어로써, 별도의 라이센스 구입 없이 이용할 수 있다. .. 2016. 1. 25.
CSS 폰트 단위 변환 pt(point) : 1포인트가 0.72인치와 같은 단위px(pixel) : 화면 해상도에 비례한 상대적인 단위em, % : 상위, 또는 상속받거나 지정된 요소에 대한 상대 크기를 백분율로 환산한 단위 아래의 표는 HTML의 body에 기본 픽셀로 16px가 설정되어 있을 때의 단위 환산 표이다. 기본 픽셀이 16px일 때, 8px는 16px의 50%이므로 8px에 대한 em 값은 0.5이고, %는 50이다. 2016. 1. 25.
[컴파일러] - 어휘 분석 (Lexical analysis) II 1. 토큰(token) 언어 이론에서 알파벳 (alphabet)은 a, b, 1, 2, /와 같은 기호의 유한 집합이다. 알파벳에 속한 기호들의 유한한 나열을 스트링 (string) 또는 단어 (word)라고 한다. 어떠한 알파벳이 a, b, c를 포함한다면, abc는 이 알파벳으로 만들 수 있는 스트링이 된다. 그러나 만약 어떠한 알파벳이 a, b로 구성된다면 abc는 이 알파벳으로 만들 수 있는 스트링이 아니다.어떠한 스트링 $s$에 대해 $s$의 절댓값 $|s|$는 스트링에 나열된 기호의 수이며, 이를 스트링의 길이라고 한다. 예를 들어, 스트링 "lexical"의 길이는 7이 된다. 언어 이론에서는 길이가 0인 스트링도 존재하는데, 이를 empty string이라고 한다.언어 (language)는.. 2016. 1. 19.
[컴파일러] - 어휘 분석 (Lexical analysis) I 1. 개요 컴파일러의 첫 번째 단계는 소스 코드를 정규 문법 (regular grammar)에 따라 토큰 (token)으로 분류하는 어휘 분석 또는 스캐닝 (scanning)이다. 예를 들어, "Lexical analysis is the first step of compiler"라는 문장에서 'L', 'e', 'x', 'i', 'c', 'a', 'l'을 따로 놓으면 어떠한 의미도 없지만, "Lexical"이라는 하나의 조각으로 보면 의미를 갖게 된다. 어휘 분석 단계에서 검출되는 의미 있는 조각을 어휘항목 (lexeme)이라고 하며, 어휘 분석기는 소스 코드에서 이러한 어휘항목을 검출하여 토큰을 생성한다. 2. 용어 정의 어휘 분석에서 사용하는 용어를 정의한다. 그러나 용어의 정의만으로는 용어가 갖는 의.. 2016. 1. 18.
[컴파일러] - 컴파일러의 구조 1. 개요 컴퓨터에서 실행되는 모든 소프트웨어는 프로그래밍 언어로 작성된다. 그러나 프로그래밍 언어는 인간이 이해할 수 있는 수준의 언어로써, 기계어를 사용하는 컴퓨터는 이해할 수 없는 언어이다. 따라서 프로그래밍 언어로 작성된 프로그램은 컴퓨터에서 실행되기 위해 일정한 규칙에 따라 기계어의 형태로 번역되어야 하는데, 이러한 번역을 수행하는 시스템 소프트웨어를 컴파일러 (compiler)라고 한다. 예를 들어, 한국어를 모국어로 사용하는 사람이 영어로 작성된 글을 읽기 위해서는 영어를 한국어로 번역해야 한다. 이러한 상황에서 영어는 프로그래밍 언어이고, 한국어를 모국어로 사용하는 사람은 컴퓨터이며 한국어는 기계어이다. 그리고 영어를 한국어로 번역해주는 사람이나 소프트웨어는 컴파일러가 된다. 2. 컴파일러.. 2016. 1. 17.
[머신러닝] - 홉필드 네트워크(Hopfield Network) 1. 개요 1982년 물리학자 존 홉필드가 제안한 신경망의 물리적 모델로써 최적화, 연상기억 등에 사용된다. 2. 용어 정의 양극화(bipolarization): 0과 1로 표현된 데이터를 -1과 1로 변환하는 것 3. 알고리즘 구조 자기조직화맵(SOM)이나 인공신경망에서 가장 많이 사용되는 퍼셉트론(perceptron) 등은 연산이나 학습 과정에서 지속적으로 가중치(weight)가 변경되는 알고리즘이다. 다른 알고리즘과 다르게 홉필드 네트워크(Hopfield network)는 고정된 가중치를 이용하여 완전한 정보를 연상하는 차이점이 있다. 홉필드 네트워크는 학습 패턴에 대해 계산된 고정 가중치 행렬을 저장하고, 입력 패턴이 들어올 때마다 가중치 행렬을 이용하여 입력 패턴에 대한 학습 패턴을 연상하면 된.. 2016. 1. 10.
[머신러닝] - 자기조직화지도(Self-Organizing Map, SOM) 1. 개요 대뇌피질의 시각피질의 학습 과정을 모델화한 인공신경망으로써 자율 학습에 의한 클러스터링을 수행하는 알고리즘이다. 2. 용어 정의 클러스터링(clustering): 데이터의 유사성에 기초하여 데이터를 몇몇의 그룹으로 분류하는 기법 입력층(input layer): 입력 벡터를 입력받는 층 경쟁층(competitive layer): 입력 벡터의 특성에 따라 입력 벡터가 한 점으로 클러스터링 되는 층 가중치(weight): 인공신경망에서 가중치는 각 입력 값에 대한 입력 값의 중요도를 값을 말함 노드(node): 경쟁층에서 입력 벡터들이 서로의 유사성에 의해 모이는 하나의 영역 3. 알고리즘 구조 자기조직화지도 인공신경망 기법중에서 가장 단순한 알고리즘 중 하나이다. 알고리즘에서 입력 벡터와 경쟁층 .. 2016. 1. 5.