KR101583978B1 - 오토마타 배치 형태 조절 방법 및 장치 - Google Patents

오토마타 배치 형태 조절 방법 및 장치 Download PDF

Info

Publication number
KR101583978B1
KR101583978B1 KR1020140116836A KR20140116836A KR101583978B1 KR 101583978 B1 KR101583978 B1 KR 101583978B1 KR 1020140116836 A KR1020140116836 A KR 1020140116836A KR 20140116836 A KR20140116836 A KR 20140116836A KR 101583978 B1 KR101583978 B1 KR 101583978B1
Authority
KR
South Korea
Prior art keywords
regular expression
automata
state
joint point
node
Prior art date
Application number
KR1020140116836A
Other languages
English (en)
Inventor
한요섭
고상기
Original Assignee
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Priority to KR1020140116836A priority Critical patent/KR101583978B1/ko
Application granted granted Critical
Publication of KR101583978B1 publication Critical patent/KR101583978B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

오토마타 배치 형태 조절 방법 및 장치가 제공된다. 개시된 오토마타 배치 형태 조절 방법은 정규 표현식을 상기 정규 표현식에 상응하는 이진 트리로 변환하는 단계; 상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식에 상응하는 오토마타를 생성하는 단계; 상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식의 오토마타의 상태들을 복수의 그룹으로 분할하기 위한 적어도 하나의 관절점 상태를 검색하는 단계; 및 상기 적어도 하나의 관절점 상태를 이용하여 상기 정규 표현식의 오토마타의 배치 형태를 조절하는 단계;를 포함한다.

Description

오토마타 배치 형태 조절 방법 및 장치{Method and Apparatus for controlling form of automata arrangement}
본 발명의 실시예들은 오토마타의 배치 형태를 가독성 있게 표시하기 위한 방법 및 장치에 관한 것이다.
정규 표현식(Regular Expression)은 각종 검색 엔진, 바이오 인포매틱스, 운영체제 명령어, 문서 편집기, 네트워크 보안 등과 같이 주로 텍스트 패턴 매칭에 활용되고 있으며, 검색할 패턴을 기술하는 표현식을 의미한다. 대부분의 어플리케이션은 정규 표현식을 활용하고 있으며, 학문적으로도 컴퓨터 과학의 거의 모든 분야에서 정규 표현식을 활용하고 있다.
정규 표현식은 표 1와 같은 문법의 조합으로 정의되는 문자열의 집합을 의미한다. 일례로서, 정규 표현식 "(fa|mo|b?o)ther"는 "father", "mother", "bother", "other"를 나타낸다.
기능 설명
. 문자 1개의 문자와 일치한다. 단일행 모드에서는 새줄 문자를 제외한다.
\ 이스케이프 특수 문자를 식에 문자 자체로 포함한다.
| 선택 여러 식 중에서 하나를 선택한다. 예를 들어, "abc|adc"는 abc와 adc 문자열을 모두 포함한다.
^ 부정 문자 클래스 안의 문자를 제외한 나머지를 선택한다. 예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않고 ed, fd 등을 포함한다. [^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 의미한다.
[] 문자 클래스 "["과 "]" 사이의 문자 중 하나를 선택한다. "|"를 여러 개 쓴 것과 같은 의미이다. 예를 들면 [abc]d는 ad, bd, cd를 뜻한다. 또한, "-" 기호와 함께 쓰면 범위를 지정할 수 있다. "[a-z]"는 a부터 z까지 중 하나, "[1-9]"는 1부터 9까지 중의 하나를 의미한다.
() 하위식 여러 식을 하나로 묶을 수 있다. "abc|adc"와 "a(b|d)c"는 같은 의미를 가진다.
* 0회 이상 0개 이상의 문자를 포함한다. "a*b"는 "b", "ab", "aab", "aaab"를 포함한다.
+ 1회 이상 "a+b"는 "ab", "aab", "aaab"를 포함하지만 "b"는 포함하지 않는다.
? 0 또는 1회 "a?b"는 "b", "ab"를 포함한다.
{m} m회 "a{3}b"는 "aaab"만 포함한다.
{m,} m회 이상 "a{2,}b"는 "aab", "aaab", "aaaab"를 포함한다. "ab"는 포함되지 않는다.
{m,n} m회 이상 n회 이하 "a{1,3}b"는 "ab", "aab", "aaab"를 포함하지만, "b"나 "aaaab"는 포함하지 않는다.
정규 표현식은 검색에 있어 대단히 강력한 도구로 활용되는데, 이는 특정 키워드가 아닌 다양한 패턴의 다중 검색어에 대해 효율적인 패턴 매칭을 수행하여 패턴 검색의 효율을 높일 수 있기 때문이다.
검색하고자 하는 정규 표현식이 복수인 경우에는 어떤 방식에 따라 검색을 수행하느냐에 따라 검색 시간과 메모리 사용량이 크게 달라지기 때문에, 복수의 정규 표현식을 이용하여 문자열을 효율적으로 검색하기 위한 방법에 대한 연구가 활발하게 이루어지고 있다. 이 중에서, 오토마타를 이용하여 복수의 정규 표현식을 순차적으로 선택하여 검색하는 방법이 사용되고 있다.
한편, JFLAP(Java Formal Languages and Automata Package)는 특수한 그래프인 오토마타를 가시화하는데 사용되는 소프트웨어이다. 도 1에서는 종래 기술에 따른 JFLAP의 출력 결과의 일례를 도시하고 있다.
보다 상세하게, 도 1에서는, 정규 표현식인 "(a+b)*c(a+b)"을 가시화하였을 경우의 JFLAP의 출력 결과를 도시하고 있다. JFLAP에서는 톰슨 작도(Thompson Construction)을 사용하기 때문에 람다 전이(lambda(λ) transition)를 사용한다. 그런데, JFLAP은 람다 전이의 과다한 사용으로 인하여 상태(state)와 전이(transition)의 복잡한 생성으로 가독성이 굉장히 떨어지는 것을 볼 수 있다(도 1에서, "상태"는 원형으로, "전이"는 실선으로 표시, 람다 전이는 한 상태에서 다른 상태로 이동 시에 특정한 입력이 필요한데, 람다 전이는 특정한 입력이 필요 없이 이동할 수 있음).
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 오토마타의 배치 형태를 가독성 있게 표시하기 위한 방법 및 장치를 제안하고자 한다.
본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 정규 표현식을 상기 정규 표현식에 상응하는 이진 트리로 변환하는 단계; 상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식에 상응하는 오토마타를 생성하는 단계; 상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식의 오토마타의 상태들을 복수의 그룹으로 분할하기 위한 적어도 하나의 관절점 상태를 검색하는 단계; 및 상기 적어도 하나의 관절점 상태를 이용하여 상기 정규 표현식의 오토마타의 배치 형태를 조절하는 단계;를 포함하는 것을 특징으로 하는 오토마타 배치 형태 조절 방법이 제공된다.
상기 관절점 상태를 검색하는 단계는, 상기 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
Figure 112014084246991-pat00001
"가 위치하고, 상기 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 상기 부모 노드의 오른쪽 자식 노드에 연산자가 위치하는 경우, 상기 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태를 상기 관절점 상태로 검색할 수 있다.
상기 관절점 상태를 검색하는 단계는, 상기 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
Figure 112014084246991-pat00002
"가 위치하고, 상기 부모 노드의 왼쪽 자식 노드에 연산자가 위치하며, 상기 부모 노드의 오른쪽 자식 노드에 문자가 위치하는 경우, 상기 부모 노드의 오른쪽 자식 노드에 위치한 문자와 대응되는 상태를 상기 관절점 상태로 검색할 수 있다.
상기 관절점 상태를 검색하는 단계는, 상기 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
Figure 112014084246991-pat00003
"가 위치하고, 상기 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 상기 부모 노드의 오른쪽 자식 노드에 문자가 위치하는 경우, 상기 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태 및 상기 부모 노드의 오른쪽 자식 노드에 위치한 문자와 대응되는 상태를 상기 관절점 상태로 검색할 수 있다.
상기 관절점 상태를 검색하는 단계는, 상기 정규 표현식의 이진 트리 중에서, 조부모 노드에 연산자 "*"가 위치하고, 상기 조부모 노드의 자식인 부모 노드에 "?"가 위치하고, 상기 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 상기 부모 노드의 오른쪽 자식 노드가 없는 경우, 상기 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태를 상기 관절점 상태로 검색할 수 있다.
상기 이진 트리에 위치한 문자는 상기 오토마타 내에서 시작 상태 및 종료 상태로 구성되고, 상기 관절점 상태는 상기 오토마타 내에서 상기 문자의 종료 상태와 대응될 수 있다.
상기 적어도 하나의 관절점 각각은, 2개의 그룹 중 하나의 그룹을 일 영역으로 배치시키고, 다른 하나의 그룹을 타 영역으로 배치시킬 수 있다.
상기 적어도 하나의 관절점 각각은, 각각의 영역들에 위치한 상기 그룹들을 다각형 형태로 배치시키되, 상기 그룹들은 복수의 상태들을 포함하고, 상기 다각형 형태의 복수의 꼭지점들은 상기 그룹 내의 복수의 상태들과 각각 대응될 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 정규 표현식을 상기 정규 표현식에 상응하는 이진 트리로 변환하는 이진 트리 변환부; 상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식에 상응하는 오토마타를 생성하는 오토마타 생성부; 상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식의 오토마타의 상태들을 복수의 그룹으로 분할하기 위한 적어도 하나의 관절점 상태를 검색하는 관절점 검색부; 및 상기 적어도 하나의 관절점 상태를 이용하여 상기 정규 표현식의 오토마타의 배치 형태를 조절하는 배치 형태 조절부;를 포함하는 것을 특징으로 하는 오토마타 배치 형태 조절 장치가 제공된다.
본 발명에 따르면, 오토마타의 배치 형태를 가독성 있게 표시할 수 있다.
도 1에서는, 정규 표현식인 "(a+b)*c(a+b)"을 가시화하였을 경우의 JFLAP의 출력 결과를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 오토마타 배치 형태 조절 방법이 흐름도를 도시한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 이진 트리 변환 개념을 도시한 도면이다.
도 4는 이전 트리로부터 오토마타를 생성하는 과정을 정리한 표를 도시한 도면이다.
도 5은 본 발명의 일 실시예에 따라 생성된 오토마타를 도시한 도 면이다.
도 6은 본 발명의 일 실시예에 따른 오토마타의 배치 조절의 일례를 도시한 도면이다.
도 7에서는 정규 표현식의 이진 트리를 이용한 관절점 상태의 검색 기준을 도시한 도면이다.
도 8은 본 발명의 다른 실시예에 따른 오토마타 배치 조절의 일례를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 오토마타 배치 형태 조절 장치의 개략적인 구성을 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 오토마타 배치 형태 조절 방법이 흐름도를 도시한 순서도이다.
보다 상세하게, 본 발명에 따른 오토마타 배치 형태 조절 방법은 JFLAP(Java Formal Languages and Automata Package) 등과 같이 오토마타를 위한 교육용 소프트웨어에서 처리되는 동작으로서, 프로세서를 구비한 단말 장치에서 동작이 처리될 수 있다. 이하, 각 구성요소 별로 수행되는 단계를 상세하게 설명한다.
먼저, 단계(210)에서는 정규 표현식을 상응하는 이진 트리로 변환한다.
도 3은 본 발명의 일 실시예에 따른 이진 트리 변환 개념을 도시하고 있다. 즉, 도 3을 참조하면, 정규 표현식 "(a+b)*c(a+b)"를 이진 트리로 변환하는 일례를 설명하고 있다. 이 때, 각 노드에는 문자(literal) 및 연산자(operator)가 위치할 수 있다.
정규 표현식을 이진 트리로 변환하는 개념은 당업자에게 자명한 것이므로, 이에 대한 설명은 생략하기로 한다.
다음으로, 단계(220)에서는 정규 표현식의 이진 트리를 이용하여 정규 표현식에 상응하는 오토마타를 생성한다.
보다 상세하게, 단계(220)에서는 이진 트리를 잎 노드(leaf node)에서부터 탐색하여, 문자들을 하나의 오토마타로 구성한다. 이 때, 문자들은 오토마타 내에서 시작 상태, 종료 상태 및 전이로 구성될 수 있다. 그리고, 각 오토마타들은, 그들의 부모 노드가 갖는 연산자 종류에 따라 적절히 연결되어 하나의 새로운 오토마타를 형성하며, 그것들은 다시 이진 트리의 부모 노드에 있는 연산자를 만나서 더 큰 오토마타로 확장된다. 이진 트리의 루트 노드까지 탐색이 완료되면 최종적인 결과물인 오토마타가 생성된다.
도 4는 이전 트리로부터 오토마타를 생성하는 과정을 정리한 표를 도시하고 있다.
그리고, 도 5은 본 발명의 일 실시예에 따라 생성된 오토마타를 도시하고 있다. 즉, 도 5을 참조하면, 도 3에 도시된 이진 트리를 이용하여 정규 표현식 "(a+b)*c(a+b)"에 상응하는 오토마타를 도시하고 있다. 도 5에서, 원형 표시는 상태(state)를, 실선 표시는 전이(transition)를 표시하고 있다.
계속하여, 단계(330)에서는 정규 표현식의 이진 트리를 이용하여 관절점 상태를 검색한다. 그리고, 단계(340)에서는 적어도 하나의 관절점 상태를 이용하여 정규 표현식의 오토마타의 배치 형태를 조절한다.
여기서, 관절점 상태는 정규 표현식의 오토마타의 상태들을 복수의 그룹으로 분할하기 위한 중심점을 나타내며, 관절점 상태는 적어도 하나 이상일 수 있다. 즉, 이진 트리를 분석하여 오토마타 상태들 사이에 접점이 되는 특정한 패턴을 검출하고, 이 특정 패턴이 오토마타 상태를 분할하는 관절점 상태가 된다. 도 3의 일례에서, 상태 q5가 관절점 상태가 된다. 관절점 상태의 검색 기준은 아래에서 보다 상세하게 설명하기로 한다.
이러한 관절점 상태를 기준으로 상태들을 그룹화하여, 오토마타의 배치 형태를 가독성 있게 조절한다.
본 발명의 일 실시예에 따르면, 적어도 하나의 관절점 상태 각각은, 2개의 그룹 중 하나의 그룹을 일 영역으로 배치시키고, 다른 하나의 그룹을 타 영역으로 배치시켜 오토마타의 배치 형태를 조절한다.
보다 상세하게, 본 발명의 일 실시예에 따르면 적어도 하나의 관절점 상태 각각은, 각각의 영역들에 위치한 그룹들을 다각형 형태로 배치시킨다. 이 때, 그룹들은 복수의 상태들을 포함하고, 다각형 형태의 복수의 꼭지점들은 그룹들 내의 복수의 상태들과 각각 대응될 수 있다.
도 6은 본 발명의 일 실시예에 따른 오토마타의 배치 조절의 일례를 도시하고 있다. 즉, 도 5에 도시된 생성 오토마타의 배치 형태를 조절하여 도 6에 도시된 것과 같은 오토마타를 출력한다.
도 6을 참조하면, 상태 q5가 관절점 상태가 되며, 관절점 상태(상태 q5)의 왼쪽 영역에서는 상태 q5와 함께 상태 q0, 상태 q1, 상태 q3가 꼭지점을 이루는 사각형이 하나의 그룹이 표시되고, 관절점 상태(상태 q5)의 오른쪽 영역에서는 상태 q5와 함께 상태 q7, 상태 q9가 꼭지점을 이루는 삼각형이 하나의 그룹이 표시될 수 있다.
정리하면, 본 발명에 따른 오토마타 배치 형태 조절 방법은 관절점 상태를 기준으로 상태들을 그룹화하여 오토마타의 배치 형태를 관절점 상태를 기준으로 다각형으로 표시함으로써, 오토마타를 가독성 있게 표시할 수 있다.
한편, 도 7에서는 정규 표현식의 이진 트리를 이용한 관절점 상태의 검색 기준을 도시하고 있다.
즉, 이진 트리의 최하단 노드에는 문자들이, 이진 트리의 중간 노드에는 연산자가 위치하게 되며, 다음의 4가지 경우에서 오토마타 상태들이 두 그룹으로 분리되고 있다.
도 7의 (a)를 참조하면, 단계(230)에서는, 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
Figure 112014084246991-pat00004
"가 위치하고, 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 부모 노드의 오른쪽 자식 노드에 연산자가 위치하는 경우, 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태(보다 상세하게, 오토마타 내의 문자의 종료 상태)를 관절점 상태로 검색할 수 있다.
또한, 도 7의 (b)를 참조하면, 단계(230)에서는, 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
Figure 112014084246991-pat00005
"가 위치하고, 부모 노드의 왼쪽 자식 노드에 연산자가 위치하며, 부모 노드의 오른쪽 자식 노드에 문자가 위치하는 경우, 부모 노드의 오른쪽 자식 노드에 위치한 문자와 대응되는 상태(문자의 종료 상태)를 관절점 상태로 검색할 수 있다.
또한, 도 7의 (c)를 참조하면, 단계(230)에서는, 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
Figure 112014084246991-pat00006
"가 위치하고, 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 부모 노드의 오른쪽 자식 노드에 문자가 위치하는 경우, 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태(문자의 종료 상태) 및 부모 노드의 오른쪽 자식 노드에 위치한 문자와 대응되는 상태(문자의 종료 상태)를 관절점 상태로 검색할 수 있다.
또한, 도 7의 (d)를 참조하면, 단계(230)에서는, 정규 표현식의 이진 트리 중에서, 조부모 노드에 연산자 "*"가 위치하고, 조부모 노드의 자식인 부모 노드에 "
Figure 112014084246991-pat00007
"가 위치하고, 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 부모 노드의 오른쪽 자식 노드가 없는 경우, 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태(문자의 종료 상태)를 관절점 상태로 검색할 수 있다.
도 8은 본 발명의 다른 실시예에 따른 오토마타 배치 조절의 일례를 도시한 도면이다.
도 8의 (a)는 정규 표현식 "(a+b)*c(a+b)((c+d)*e)(g+h)"를 이진 트리로 변환한 예를 도시하고 있고, 도 8의 (b)는 도 8의 (a)의 오토마타를 이용한 오토마타의 배치 조절의 예를 도시하고 있다.
도 7의 설명에 따라, 도 8 (a)의 세모로 표시된 부분 내의 문자 c와 문자 e가 관절점 상태로 검색되며, 이에 따라 도 8의 (b)와 같은 오토마타가 출력된다.
도 9는 본 발명의 일 실시예에 따른 오토마타 배치 형태 조절 장치의 개략적인 구성을 도시한 도면이다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 오토마타 배치 형태 조절 장치(900)는 이진 트리 변환부(910), 오토마타 생성부(920), 관절점 검색부(930) 및 배치 형태 조절부(940)를 포함한다.
이진 트리 변환부(910)는 정규 표현식을 상응하는 이진 트리로 변환한다.
오토마타 생성부(920)는 정규 표현식의 이진 트리를 이용하여 정규 표현식에 상응하는 오토마타를 생성한다.
관절점 검색부(930)는 정규 표현식의 이진 트리를 이용하여 정규 표현식의 오토마타의 상태들을 복수의 그룹으로 분할하기 위한 적어도 하나의 관절점 상태를 검색한다.
배치 형태 조절부(940)는 적어도 하나의 관절점 상태를 이용하여 정규 표현식의 오토마타의 배치 형태를 조절한다.
지금까지 본 발명에 따른 오토마타 배치 형태 조절 장치(900)의 실시예들에 대하여 설명하였고, 앞서 도 1 내지 도 8에서 설명한 오토마타 배치 형태 조절 방법에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (10)

  1. 정규 표현식을 상기 정규 표현식에 상응하는 이진 트리로 변환하는 단계;
    상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식에 상응하는 오토마타를 생성하는 단계;
    상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식의 오토마타의 상태들을 복수의 그룹으로 분할하기 위한 적어도 하나의 관절점 상태를 검색하는 단계; 및
    상기 적어도 하나의 관절점 상태를 이용하여 상기 정규 표현식의 오토마타의 배치 형태를 조절하는 단계;를 포함하는 것을 특징으로 하는 오토마타 배치 형태 조절 방법.
  2. 제1항에 있어서,
    상기 관절점 상태를 검색하는 단계는,
    상기 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
    Figure 112014084246991-pat00008
    "가 위치하고, 상기 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 상기 부모 노드의 오른쪽 자식 노드에 연산자가 위치하는 경우, 상기 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태를 상기 관절점 상태로 검색하는 것을 특징으로 하는 오토마타 배치 형태 조절 방법.
  3. 제1항에 있어서,
    상기 관절점 상태를 검색하는 단계는,
    상기 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
    Figure 112014084246991-pat00009
    "가 위치하고, 상기 부모 노드의 왼쪽 자식 노드에 연산자가 위치하며, 상기 부모 노드의 오른쪽 자식 노드에 문자가 위치하는 경우, 상기 부모 노드의 오른쪽 자식 노드에 위치한 문자와 대응되는 상태를 상기 관절점 상태로 검색하는 것을 특징으로 하는 오토마타 배치 형태 조절 방법.
  4. 제1항에 있어서,
    상기 관절점 상태를 검색하는 단계는,
    상기 정규 표현식의 이진 트리 중에서, 부모 노드에 연산자 "
    Figure 112014084246991-pat00010
    "가 위치하고, 상기 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 상기 부모 노드의 오른쪽 자식 노드에 문자가 위치하는 경우, 상기 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태 및 상기 부모 노드의 오른쪽 자식 노드에 위치한 문자와 대응되는 상태를 상기 관절점 상태로 검색하는 것을 특징으로 하는 오토마타 배치 형태 조절 방법.
  5. 제1항에 있어서,
    상기 관절점 상태를 검색하는 단계는,
    상기 정규 표현식의 이진 트리 중에서, 조부모 노드에 연산자 "*"가 위치하고, 상기 조부모 노드의 자식인 부모 노드에 "
    Figure 112014084246991-pat00011
    "가 위치하고, 상기 부모 노드의 왼쪽 자식 노드에 문자가 위치하며, 상기 부모 노드의 오른쪽 자식 노드가 없는 경우, 상기 부모 노드의 왼쪽 자식 노드에 위치한 문자와 대응되는 상태를 상기 관절점 상태로 검색하는 것을 특징으로 하는 오토마타 배치 형태 조절 방법.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 이진 트리에 위치한 문자는 상기 오토마타 내에서 시작 상태 및 종료 상태로 구성되고,
    상기 관절점 상태는 상기 오토마타 내에서 상기 문자의 종료 상태와 대응되는 것을 특징으로 하는 오토마타 배치 형태 조절 방법.
  7. 제1항에 있어서,
    상기 적어도 하나의 관절점 각각은, 2개의 그룹 중 하나의 그룹을 일 영역으로 배치시키고, 다른 하나의 그룹을 타 영역으로 배치시키는 것을 특징으로 하는 오토마타 배치 형태 조절 방법.
  8. 제7항에 있어서,
    상기 적어도 하나의 관절점 각각은, 각각의 영역들에 위치한 상기 그룹들을 다각형 형태로 배치시키되,
    상기 그룹들은 복수의 상태들을 포함하고, 상기 다각형 형태의 복수의 꼭지점들은 상기 그룹 내의 복수의 상태들과 각각 대응되는 것을 특징으로 하는 오토마타 배치 형태 조절 방법.
  9. 제1항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  10. 정규 표현식을 상기 정규 표현식에 상응하는 이진 트리로 변환하는 이진 트리 변환부;
    상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식에 상응하는 오토마타를 생성하는 오토마타 생성부;
    상기 정규 표현식의 이진 트리를 이용하여 상기 정규 표현식의 오토마타의 상태들을 복수의 그룹으로 분할하기 위한 적어도 하나의 관절점 상태를 검색하는 관절점 검색부; 및
    상기 적어도 하나의 관절점 상태를 이용하여 상기 정규 표현식의 오토마타의 배치 형태를 조절하는 배치 형태 조절부;를 포함하는 것을 특징으로 하는 오토마타 배치 형태 조절 장치.
KR1020140116836A 2014-09-03 2014-09-03 오토마타 배치 형태 조절 방법 및 장치 KR101583978B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140116836A KR101583978B1 (ko) 2014-09-03 2014-09-03 오토마타 배치 형태 조절 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140116836A KR101583978B1 (ko) 2014-09-03 2014-09-03 오토마타 배치 형태 조절 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101583978B1 true KR101583978B1 (ko) 2016-01-12

Family

ID=55170235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140116836A KR101583978B1 (ko) 2014-09-03 2014-09-03 오토마타 배치 형태 조절 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101583978B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960186A (zh) * 2017-12-25 2019-07-02 北京创昱科技有限公司 控制流程的处理方法、装置、电子设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960186A (zh) * 2017-12-25 2019-07-02 北京创昱科技有限公司 控制流程的处理方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US10540350B2 (en) Source code search engine
KR101707369B1 (ko) 이벤트 저장소의 구축 방법 및 장치
US20210157965A1 (en) Techniques for applying generative design to the configuration of mechanical assemblies
WO2019039534A1 (ja) データ分析処理支援装置、及びデータ分析処理支援方法
JP6370503B1 (ja) プログラム作成装置
KR101583978B1 (ko) 오토마타 배치 형태 조절 방법 및 장치
US20160371337A1 (en) Partitioned join with dense inner table representation
CN111475602B (zh) 多版本知识图谱的存储方法、装置、存储介质及电子设备
KR101222486B1 (ko) 비결정적 유한 오토마타의 비결정성을 선택적으로 제거하기 위한 방법, 서버, 단말 장치 및 컴퓨터 판독 가능한 기록 매체
KR101583979B1 (ko) 오토마타 생성 장치 및 방법
KR101645890B1 (ko) 비결정적 유한 오토마타의 상태 축소 방법 및 장치
KR101679011B1 (ko) 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치
JP6310532B1 (ja) 生成装置、生成方法、及び生成プログラム
KR101645874B1 (ko) 정규 표현식을 이용하는 문자열 또는 악성 패킷 검출 방법 및 시스템
KR101714270B1 (ko) Xml 스키마 변환 방법 및 장치
JP6034240B2 (ja) 分析方法、分析装置および分析プログラム
US20090132903A1 (en) Visual system for visualizing, navigating, and editing attribute lattices within olap databases
JP2012226697A (ja) Wbs作成システムおよびwbs作成方法
JP2010009489A (ja) データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム
CN105550215B (zh) 一种汽车诊断条件无序性与关联性的存储与快速检索方法
JP6855401B2 (ja) 生成装置、生成方法、及び生成プログラム
JP2009230606A (ja) ソースコードテンプレート生成装置
JP2015035174A (ja) 制御プログラム分割装置、制御プログラム分割方法及びその記録媒体
KR102422439B1 (ko) 시드를 이용한 지식 그래프 생성 방법 및 그 장치
JP5619930B2 (ja) 対話スクリプト操作命令実行装置、対話スクリプト操作命令実行方法、およびプログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee