KR101356676B1 - 컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및시스템 - Google Patents

컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및시스템 Download PDF

Info

Publication number
KR101356676B1
KR101356676B1 KR1020077030526A KR20077030526A KR101356676B1 KR 101356676 B1 KR101356676 B1 KR 101356676B1 KR 1020077030526 A KR1020077030526 A KR 1020077030526A KR 20077030526 A KR20077030526 A KR 20077030526A KR 101356676 B1 KR101356676 B1 KR 101356676B1
Authority
KR
South Korea
Prior art keywords
parameter
expression
value
referenced
character sequence
Prior art date
Application number
KR1020077030526A
Other languages
English (en)
Other versions
KR20080021071A (ko
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 아브 이니티오 테크놀로지 엘엘시
Publication of KR20080021071A publication Critical patent/KR20080021071A/ko
Application granted granted Critical
Publication of KR101356676B1 publication Critical patent/KR101356676B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Machine Translation (AREA)

Abstract

표현식을 번역하기 위한 방법, 대응 소프트웨어, 및 시스템을 개시한다. 표현식 번역 방법은, 제1 구문을 이용하여 스트링 값을 표현하는 제1 문자 시퀀스를 포함하는, 제1 구문의 제1 표현식(102)을 수신하는 단계와, 표현식을 표현하기 위한 제2 구문을 식별하는 단계와, 제1 표현식을 표현하는, 제2 구문의 제2 표현식(104)을 생성하는 단계를 포함하며, 제2 구문의 제2 표현식을 생성하는 단계는, 제2 문자 시퀀스가 제2 구문을 이용하여 스트링 값을 표현하도록, 제1 문자 시퀀스를 이용하여 제2 문자 시퀀스를 생성하는 단계를 포함한다.
표현식, 리터럴 스트링, 문자 시퀀스, 구문(syntax), 바인딩 환경

Description

컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및 시스템 {TRANSLATING EXPRESSIONS IN A COMPUTING ENVIRONMENT}
본 발명은 컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및 시스템에 관한 것이다.
셀 스크립팅 랭귀지(shell scripting language)(예컨대, ksh)에서, 셀 스크립트 내의 파라미터는 접두어(prefix)(예컨대, $)를 이용하여 참조될 수 있다. ksh에서, 동적 환경은 이전에 정의된 파라미터의 값을 유지한다. 셀 스크립트가 실행되거나 또는 명령어 라인 표현식이 평가될 때, 참조된 파라미터는 동적 환경 내의 파라미터 값에 따라 바인딩(binding)된다. 일부 경우, 스크립팅 랭귀지로 스크립트를 작성할 때에는, 리터럴 값(literal value)을 보존하기 위해 스크립팅 랭귀지에 적합한 인용 구문(quoting syntax)을 사용하고, 그 스크립트의 실행 시에 파라미터의 바인딩(binding)을 인용된 표현식 내로 제한하는 것이 유용하다. 파라미터를 사전에 정해진 값으로 바인딩하기 위해 매크로 익스팬션(macro expansion) 등의 다른 방식이 이용될 수도 있다.
전반적인 양태에서, 본 발명은 표현식을 번역하기 위한 방법, 해당 소프트웨어, 및 시스템을 특징으로 한다. 표현식 번역 방법은, 제1 구문을 이용하여 스트링 값을 표현하는 제1 문자 시퀀스(character sequence)를 포함하는, 제1 구문의 제1 표현식을 수신하는 단계와, 표현식을 표현하기 위한 제2 구문을 식별하는 단계와, 제1 표현식을 표현하는, 제2 구문의 제2 표현식을 생성하는 단계를 포함하며, 제2 구문의 제2 표현식을 생성하는 단계는, 제2 문자 시퀀스가 제2 구문을 이용하여 스트링 값을 표현하도록, 제1 문자 시퀀스를 이용하여 제2 문자 시퀀스를 생성하는 단계를 포함한다.
이 양태는 다음의 특징 중 하나 이상을 포함할 수 있다:
상기 제1 표현식은 복수의 실행 가능한 서술문(executable statement)을 포함한다.
상기 제1 표현식은 명령어-라인 입력을 포함한다.
상기 제1 문자 시퀀스는 참조된 값에 바인딩될 파라미터를 포함한다.
상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 단계는, 파라미터를 상기 참조된 값에 바인딩하는 단계와, 상기 제2 구문의 인용 구문에 따라 상기 참조된 값을 포함하도록 상기 제2 문자 시퀀스를 생성하는 단계를 포함한다.
상기 제1 문자 시퀀스는 상기 파라미터를 둘러싸는 구분자(delimiter)를 포함한다.
상기 구분자는, 인용 기호가 후속되는 달러($) 기호를 포함하는 사전 정의된 접두어(prefix)를 포함한다.
상기 구분자는, 인용 부호를 포함하는 사전 정의된 접미어(suffix)를 포함한다.
상기 제1 문자 시퀀스는, 스트링 값의 표현을 둘러싸는 구분자를 포함한다.
상기 스트링 값은, 파라미터 레퍼런스를 나타내기 위해 상기 제1 구문에 사용되는 문자를 포함한다.
상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 단계는, 상기 스트링 값 내의 파라미터의 바인딩을 억제하는 단계를 포함한다.
상기 제2 구문은 ksh, Java, DML, C, 및 SQL 등의 컴퓨터 처리 가능한 언어와 호환 가능하게 되도록 선택된다.
상기 제2 구문은 문자 시퀀스를 해석하기 위한 규칙을 포함한다.
상기 제2 구문을 식별하는 단계는, 상기 제1 문자 시퀀스 앞의 토큰(token)에 기초하여 구문을 식별하는 단계를 포함한다.
전반적인 양태에서, 본 발명은 표현식을 평가하는 방법, 해당 소프트웨어, 및 시스템을 특징으로 한다. 표현식 평가 방법은, 파라미터의 정의를 저장하는 하나 이상의 데이터 구조를 수신하는 단계와, 상기 표현식에서 참조되는 하나 이상의 파라미터를 식별하는 단계와, 식별된 상기 파라미터의 각각에 대한 값을, 저장되어 있는 정의에 기초하여 결정하는 단계와, 결정된 파라미터 값을 바인딩 환경(binding environment)에 저장하는 단계를 포함한다.
이러한 양태는 다음의 특징 중 하나 이상을 포함할 수 있다:
상기 바인딩 환경은, 식별된 파라미터에 대한 값과, 상기 식별된 파라미터를 평가하기 위해 필요한 값을 갖는 파라미터에 대한 값을 저장하며, 상기 바인딩 환경은, 하나 이상의 데이터 구조에 저장된 정의를 갖는 파라미터의 전부에 대한 값을 반드시 저장할 필요는 없다.
상기 표현식 평가 방법은, 상기 표현식을, 상기 바인딩 환경으로부터의 값에 바인딩된 참조된 파라미터로 실행하는 단계를 더 포함한다.
상기 표현식은 프로그램 또는 스크립트의 일부분이다.
상기 표현식은 명령어-라인 입력을 포함한다.
본 발명의 양태는 다음의 장점 중 하나 이상을 포함할 수 있다:
데이터 처리 환경은, 데이터 변환 또는 레코드 포맷의 정의(예컨대, 데이터 매니퓰레이션 랭귀지(DML)로 작성된) 등의 메타데이터(metadata)를 포함한다. 런타임(runtime)으로 캡쳐되는 리터럴 값을 통해 정의될 수 있는 동적 메다테이타를 갖는 것이 유용하다. 식별된 구문에 따라 타겟 표현식을 번역하는 것은, 리터럴 값이 캡쳐되도록 할뿐만 아니라, 리터럴 값이 식별된 구문에 적합한 방식으로 인용되도록 한다. 또한, 식별된 구문에 대한 인용 관행(quoting convention)을 이행함으로써, 일부 리터럴 값은 타겟 표현의 평가에서 보존될 수 있다.
컴퓨팅 시스템은 파라미터의 값을 바인딩 환경에 저장할 수도 있다. 표현식(예컨대, 셀 스크립트(shell script) 내의 표현식 또는 명령어 라인 표현식)이 평가될 때, 참조된 파라미터는 바인딩 환경 내의 파라미터 값에 따라 바인딩된다. 바인딩 환경 내에 파라미터 값을 유지하는 것과 관련된 오버헤드(overhead)가 존재한다. 정의되어 있는(예컨대, 파라미터 및 이들의 정의에 대한 리스트 내에) 모든 파라미터에 대한 값을 갖는 바인딩 환경을 유지하여야 하는 것을 방지하기 위해, 컴퓨팅 시스템은, 표현식을, 그 표현식에서 실제로 참조되는 파라미터에 대한 값 및 참조된 파라미터를 평가하기 위해 필요한 값을 갖는 파라미터에 대한 값만을 결정하기 위해 스캔할 수 있다. 본 발명의 다른 특징 및 장점은 이하의 상세한 설명 및 청구범위로부터 명확하게 될 것이다.
도 1은 컴퓨팅 환경과 타겟 환경 간의 대화를 나타내는 블록도이다.
도 2는 표현식을 번역하기 위한 컴퓨팅 환경의 블록도이다.
도 3은 데이터 보관소 내의 파라미터 할당을 위한 저장 영역의 컨텐츠를 나타내는 블록도이다.
도 4는 로컬 메모리 내의 바인딩 환경(binding environment)의 컨텐츠를 나타내는 블록도이다.
1. 개론
도 1을 참조하면, 컴퓨팅 환경(100)은 소스 구문을 이용하여 소스 컴퓨팅 표현식(102)(예컨대, 스크립트, 프로그램, 패스네임 등)의 스페시피케이션(specification)을 지원하고, 그 소스 표현식(102)을 다수의 가능한 타겟 환경 중 하나의 환경에서의 평가(예컨대, 실행, 확장 등)에 적합한 타겟 구문을 이용하는 타겟 표현식으로 번역한다. 컴퓨팅 환경(100)은 셀 환경 또는 컴퓨터 프로그래밍 랭귀지 환경 등의 특정의 타겟 환경(108)을 식별하여 그 타겟 환경 내의 타겟 표현식(104)을 평가하기 위한 프로세스(106)를 포함한다. 프로세스(106)는 타겟 표현식(104) 내의 정보, 다른 사용자 입력, 또는 디폴트 환경에 기초하여 타겟 환경을 식별할 수도 있다.
이러한 번역의 일부로서, 파라미터 할당(101)에 기초한 번역 시에는 일부 파라미터 레퍼런스가 분해(resolve)될 수 있도록 하는 한편, 번역된 표현식이 추후에 평가될 때에는(예컨대, 셀 변수(109)에 기초하여) 다른 파라미터 레퍼런스가 분해될 수 있도록, 선별적 파라미터 치환(selective parameter substitution)이 수행된다. 번역 프로세스는 타겟 구문의 특징, 구체적으로는 인용 스트링(quoting string) 및 파라미터 레퍼런스에 관련된 특징에 좌우된다.
타겟 표현식의 평가에서 리터럴 값이 보존되는 것이 바람직할 수 있다. 일반적으로, 타겟 구문의 각각은 리터럴 값을 인용하기 위한 일부 유형의 규정(provision)을 포함하여, 스트링이 조작자에 관련한 구문의 양상(aspect), 파라미터 치환, 또는 구분자(delimeter) 등의 구문의 다른 양상에 따라 평가되지 않도록 한다.
타겟 표현식 내의 리터럴 값의 일부는 번역 동안에 소스 표현식 내의 기호값에 기초하여 또는 예컨대 파라미터 치환에 기초하여 도입될 수도 있다. 즉, 타겟 표현식 내의 요구된 리터럴 표현식의 값은 소스 표현식이 특정될 때에는 알려지지 않을 수도 있다.
소스 표현식은, 소스 표현식이 평가될 시에 인용될 값의 일부를 캡쳐함으로써 요구된 타겟 표현식을 생성할 수 있는 파라미터 데퍼니션 랭귀지(PDL : Parameter Definition Language) 등의 랭귀지로 정의될 수 있다. 이러한 PDL은 인용된 리터럴(literal)을 이용 가능한 다양한 타겟 랭귀지 중 하나의 랭귀지의 적합한 구문으로 생성하기 위한 메카니즘을 포함한다.
"표현식"은 예컨대 스크립트나 프로그램의 일부(전체 스크립트 또는 프로그램을 포함) 또는 명령어 라인 입력을 포함할 수 있다.
도 2는, PDL 표현식을 평가하고, 그 결과의 타겟 표현식을 하나 이상의 타겟 랭귀지(예컨대, 셀 랭귀지 또는 다른 스크립팅 랭귀지)의 구문으로 실행하는, 일례의 컴퓨팅 환경(100)을 도시하고 있다. 컴퓨팅 환경(100)은 로컬 메모리(120)(예컨대, 랜덤 액세스 메모리) 및 데이터 보관소(130)(예컨대, 하나 이상의 비휘발성 기억 매체 상에 존재하는)를 구비하는 컴퓨팅 시스템(110)을 포함한다. 데이터 보관소(130)는 스크립트(132), 프로그램(134) 및 다양한 스크립트(132) 및/또는 프로그램(134)의 어느 것에서도 사용될 수 있는 파라미터의 세트 내에 배열될 수 있는 파라미터 할당 요소(136)(예컨대, 파라미터 명칭, 파라미터값, 및 옵션으로는 파라미터 속성을 포함) 등의 기능적인 데이터를 기억한다. 사용자는 그래픽 사용자 인터페이스(GUI) 및/또는 명령어-라인 인터페이스(CLI)(150)를 통해 컴퓨팅 시스템과 대화할 수 있다.
파라미터 할당 요소(136)는, 사용자가 다양한 타겟 구문의 어느 하나의 구문으로 번역될 파라미터값을 정의할 수 있는 콘시스턴트 구문(consistent syntax)을 제공하는 소스 PDL 표현식을 사용하여 정의된 파라미터를 포함할 수 있다. 어느 파라미터가 다른 어떤 파라미터를 참조할 수 있는지를 결정하기 위해 다양한 규칙 중의 어느 것도 사용될 수 있다(예컨대, ordered list - 파라미터 정의가 이전에 정의된 파라미터를 참조할 수 있음; 또는 sets - 한 세트 내의 파라미터가 또 다른 세트 내의 파라미터를 참조할 수 있음).
더욱 상세하게 후술되는 소스 PDL 표현식을 평가하는 방안은, PDL 표현식을 수신하는 단계, PDL 표현식을 나타내기 위한 타겟 구문을 식별하는 단계, 타겟 구문에 따라 PDL 표현식의 표현(representation)을 생성하는 단계를 포함한다. 예컨대, PDL 표현식을 포함하는 스크립트는 PDL 표현식이 각각 후속되는 일련의 인라인 토큰(inline token)을 포함할 수 있다. 컴퓨팅 시스템(110)은, 토큰을 뒤따르는 PDL 표현식을 해석하기 위해 사용될 타겟 랭귀지를 나타내주는 스크립트 내의 각각의 토큰을 판독함으로써 타겟 구문을 식별한다. 그러므로, 타겟 구문은 스크립트의 상이한 부분을 해석하기 위해 사용될 상이한 타겟 랭귀지를 나타내주는 스크립트 내에 상이한 토큰을 포함함으로써 스크립트 내에서 변경될 수 있다.
수신된 PDL 표현식은 스트링값을 나타내는 문자 시퀀스(character sequence)를 포함할 수 있다. 문자 시퀀스는 파라미터 레퍼런스를 통해 스트링값 (a)를 표현할 수 있다(예컨대, 파라미터의 값을 나타내는 파라미터용 접두어가 스트링값에 바인딩될 것이다). 이와 달리, 문자 시퀀스는 인용된 리터럴 표현식(예컨대, 스트링값의 표현을 둘러싸는 구분자)을 통해 스트링값 (b)을 표현할 수 있다.
PDL 표현식 내의 문자 시퀀스가 파라미터 레퍼런스를 통해 스트링값 (a)를 표현하면, 컴퓨팅 시스템(110)은 예컨대 레퍼런스의 구분에 따라 파라미터 레퍼런스의 유형을 식별한다. 레퍼런스는 "직접 치환" 파라미터 레퍼런스가 될 수 있으 며, 그 경우, 컴퓨팅 시스템(110)은 파라미터 레퍼런스를 파라미터값에 바인딩한다. 이와 달리, 레퍼런스는 "치환 플러스 인용" 파라미터 레퍼런스가 될 수 있으며, 그 경우, 컴퓨팅 시스템(110)은, 파라미터 레퍼런스를, 보다 구체적으로 하술하는 바와 같이(예컨대, 2.2.3 절) 타겟 구문 내에 인용된 리터럴을 생성하기 위한 메카니즘을 이용하여 파라미터값에 바인딩한다.
PDL 표현식 내의 문자 시퀀스가 인용된 리터럴 표현을 통해 스트링값 (b)를 표현하면, 컴퓨팅 시스템(110)은 치환을 수행하지 않고서도 리터럴 표현식 내의 스트링값을 보존한다. 컴퓨팅 시스템(110)은 타겟 구문에 기초하여 무엇이 인용된 리터럴 표현식으로서 해석될지를 결정한다. 이와 달리 파라미터 레퍼런스(예컨대, 직접 치환 파라미터 레퍼런스)를 표현할 문자 시퀀스가 인용된 리터럴 표현식에 이식(embed)되었다면, 그 문자 시퀀스는 파라미터 레퍼런스로서 취급되지 않는다(예컨대, 파라미터값에 바인딩되지 않는다).
컴퓨팅 시스템(110)이 파라미터 레퍼런스를 값에 바인딩할 때, 정의되었던(예컨대, 파라미터 및 그 정의의 리스트 내에 정의되었던) 모든 파라미터에 대한 값을 갖는 동적 환경을 구축하기 위해 시간을 소비해야 하는 것을 방지하기 위해, 컴퓨팅 시스템(110)은 그 표현식 내에 실제로 참조되는 파라미터에 대한 값들만을 결정하기 위해 표현식을 스캔할 수 있다. 파라미터가 다른 파라미터를 통해 정의될 수 있기 때문에, 표현식 내에 직접 참조되지 않은 일부 파라미터는 직접 참조된 파라미터를 평가하는 프로세스에서 평가될 수도 있다. 직접 또는 간접 참조된 파라미터의 값은 로컬 메모리(120) 내의 바인딩 환경에 저장된다. 컴퓨팅 시스 템(110)이 PDL 표현식을 평가한 후, 컴퓨터 시스템은 대응하는 타겟 구문의 타겟 표현식을 생성한다. 그 후, 컴퓨팅 시스템(110)은 타겟 표현식을 실행하거나 및/또는 데이터 보관소(130) 내에 타겟 표현식을 저장한다.
2. 표현식 번역
표현식을 소스 구문으로부터 타겟 구문으로 번역하는 것은, 번역 시에 알려진 파라미터의 값을 이용한 파라미터 치환을 수반할 수 있다. 소스 PDL 구문은 파라미터를 값으로 대체하기 위해 다수의 "$-치환" 구문을 사용한다.
소스 PDL 구문은 "직접 치환" 파라미터 레퍼런스를 사용하는 제1 유형의 "$-치환" 구문을 사용한다. 이 구문은 스트링
Figure 112007093805680-pct00001
을 직접 치환하기 위한 파라미터
Figure 112007093805680-pct00002
의 값을 갖는
Figure 112007093805680-pct00003
등의
Figure 112007093805680-pct00004
을 사용한다. 이러한 치환은 $가 다음과 같은 스트링 리터럴에 사용될 때에는 수행되지 않음에 유의하기 바란다:
Figure 112007093805680-pct00005
파라미터
Figure 112007093805680-pct00006
가 값 1.00을 갖는 직접 치환의 예는 다음의 소스 표현식을 취하고,
Figure 112007093805680-pct00007
다음의 타겟 표현식을 산출하며,
Figure 112007093805680-pct00008
여기서, $ 문자는, 파라미터
Figure 112007093805680-pct00009
에 할당된 값이 직접 치환 파라미터 레퍼런스
Figure 112007093805680-pct00010
에 대해 치환되어야 하는 것을 나타내기 위해 접두어로서 사용된다.
그러나, 일부 경우, 파라미터 레퍼런스를 치환한 값은 타겟 구문(예컨대, 데이터 매니퓰레이션 랭귀지(DML : Data Manipulation Language) 등의 타겟 랭귀지에 따른) 내에서 적법하게 되도록 보장되지 않을 수도 있다. 예컨대,
Figure 112007093805680-pct00011
에 소스 파라미터 바인딩 환경 내의 값
Figure 112007093805680-pct00012
(즉, 좌측 괄호 문자를 표현하는 길이가 1인 문자 스트링)가 할당되면, 위의 소스 표현식은 다음의 타겟 표현식을 산출하며,
Figure 112007093805680-pct00013
이 타겟 표현식은, 타겟 랭귀지가 DML인 경우에는 타겟 구문 내의 비적법한 표현식(illegal expression)이다.
그 대신 소스 표현식이 다음과 같다면,
Figure 112007093805680-pct00014
이 소스 표현식 내의 동일한 파라미터 치환은 적법한 타겟 표현식을 산출한다:
Figure 112007093805680-pct00015
(컴퓨팅 시스템(110)이 후술되는 바와 같이 이중 인용부호로 구분자를 보호하는 처리 모드에 있지 않은 것으로 함).
그러나,
Figure 112007093805680-pct00016
에 값
Figure 112007093805680-pct00017
(즉, 이중 인용부호 문자를 표현하는 길이가 1인 문자 스트링)이 할당되면, 위의 소스 표현식 내의
Figure 112007093805680-pct00018
의 이 값으로의 파라미터 치환은 다음의 타겟 표현식을 산출하며,
Figure 112007093805680-pct00019
이 타겟 표현식은 타겟 랭귀지가 DML인 경우에는 비적법한 구문이다.
소스 PDL 구문은 "치환 플러스 인용" 파리미터 레퍼런스를 사용하는 제2 유형의 "$-치환" 구문을 사용한다. 컴퓨팅 시스템(110)은 파라미터 레퍼런스를 파라미터 값에 바인딩한다. 이 유형의 파라미터 레퍼런스는 사전 정의된 세트의 구분자에 의해 지시될 수 있다. PDL에서, 구분된 "치환 플러스 인용" 파라미터 레퍼런스는
Figure 112007093805680-pct00020
에 의해(또는, 동등하게는
Figure 112007093805680-pct00021
에 의해) 제공된다.
이 "치환 플러스 인용" 파라미터 레퍼런스를 사용할 때,
Figure 112007093805680-pct00022
에 값
Figure 112007093805680-pct00023
(즉, 좌측 괄호 문자를 표현하는 길이가 1인 문자 스트링)가 할당되면, 다음의 소스 표현식,
Figure 112007093805680-pct00024
은 다음의 타겟 표현식,
Figure 112007093805680-pct00025
을 산출하며, 이 타겟 표현식은 타겟 랭귀지가 DML인 경에는 적법한 구문이다.
다시, 이 "치환 플러스 인용" 파라미터 레퍼런스를 사용하면,
Figure 112007093805680-pct00026
에 값
Figure 112007093805680-pct00027
(즉, 이중 인용부호 문자를 표현하는 길이가 1인 문자 스트링)이 할당되면, 다음의 소스 표현식,
Figure 112007093805680-pct00028
은, 예컨대 타겟 랭귀지가 DML이라면, DML에서는 인용부호로 싸여진 인용 부호가 탈출 문자(escape character) \가 선행되도록 요구하기 때문에, 다음의 타겟 표현식을 산출한다:
Figure 112007093805680-pct00029
상이한 타겟 랭귀지가 사용되면, 타겟 표현식은 상이한 구문을 사용할 수도 있다. 예컨대, 다음의 소스 표현식,
Figure 112007093805680-pct00030
은, 타겟 랭귀지가 ksh이라면, 다음의 타겟 표현식을 산출한다:
Figure 112007093805680-pct00031
타겟 구문은 타겟 랭귀지로서 ksh를 지시하기 위한 "S-ksh" 또는 DML을 타겟 랭귀지로서 지시하기 위한 "$-dml" 등의 소스 표현식 내에 이식된 토큰에 의해 나타내질 것이다. 일부 토큰은 대응하는 타겟 랭귀지(예컨대, $-리터럴)를 갖지 못하지만, 여전히 규칙의 세트에 의해 정해진 양호하게 정의된 구문을 갖는다. 컴퓨팅 시스템이 타겟 구문에 대한 토큰을 인식한 후, 표현식 평가는 그 타겟 구문에 대응하는 "처리 모드"에 위치된다.
"치환 플러스 인용" 파라미터 레퍼런스 메카니즘은, 소스 PDL 표현식이 타겟 구문에 적합한 처리 모드에 의해 결정된 방식으로 기입 및 인용된 후에 캡쳐될 타 겟 구문 값에 대한 방식을 제공한다. 소스 PDL 표현식이 캡쳐되고 있을 때에 알려지게 되는 타겟 구문 값은, 타겟 구문을 사전 결정된 "보호 구분자(protecting delimiter)"(선행하는 "$" 문자가 없는 이중 또는 단일 인용부호 등의)로 감쌈으로써 타겟 구문과 일치하는 리터럴 값으로서 보존될 수 있다. 즉, 소스 구문은 구분된 스트링(delimited string) 내의 치환을 필요로 하지 않는다.
예컨대, 스트링
Figure 112007093805680-pct00032
이 파일(pi)의 값을 DML 타겟 랭귀지로 나타내는 특수 문자인 경우, 이 스트링은 DML 문자 시퀀스에 포함될 때에는 이중 인용부호로 감싸여질 수 있으며(
Figure 112007093805680-pct00033
와 같이), 예컨대
Figure 112007093805680-pct00034
를 사용함으로써 직접 치환을 "탈출할(escape)" 필요없이 불변의 상태로 유지할 것이다. 다른 타겟 랭귀지는 ksh 타겟 랭귀지의 경우에는
Figure 112007093805680-pct00035
와 같은 문자 시퀀스를 보호하기 위해 다른 보호 구분자를 사용할 수도 있다. PDL 표현식을 평가할 때, 컴퓨팅 시스템(110)은 보호 구분자 내의 "직접 치환" 파라미터 레퍼런스 및 "치환 플러스 인용" 파라미터 레퍼런스 양자를 턴오프함으로써 보호 구분자를 이행(honor)한다. 컴퓨팅 시스템(110)은 어떠한 보호 구분자가 처리 모드를 따르는지를 판단한다.
2.1 타겟 구문 처리 모드
상이한 타겟 구문 처리 모드는 PDL 표현식을 평가하기 위해 상이한 동작을 발생한다. 컴퓨팅 시스템(110)은 이식된 토큰을 판독함으로써 처리 모드를 인식할 것이지만, 토큰이 존재하지 않는다면 디폴트 처리 모드로 간주될 수 있다. 4개의 일례의 처리 모드에 대한 표현식 평가 동작은 다음과 같이 요약된다:
타겟 구문: ksh
토큰: $-ksh
처리 모드 동작: 컴퓨팅 시스템(110)은 "치환 플러스 인용"에 대한 ksh 타겟 랭귀지와 일치하는 인용 구문을 사용하고, ksh 타겟 랭귀지에 의해 사용된 보호 구분자를 인식한다.
타겟 구문: DML
토큰: $-dml
처리 모드 동작: 컴퓨팅 시스템(110)은 "치환 플러스 인용"에 대한 DML 타겟 랭귀지와 일치하는 인용 구문을 사용하지만, 보호된 구분자로서 어떠한 구분자도 인식하지 못한다.
타겟 구문: 리터럴
토큰: $-리터럴
보호 모드 동작: 컴퓨팅 시스템(110)은 "치환 플러스 인용" 또는 "직접 치환" 파라미터 바인딩을 수행하지 못하고, $-리터럴 토큰과 후속의 토큰 사이의 모든 것을 필요에 따라 문자 그대로(토큰의 바로 뒤의 공간은 예외) 출력한다.
이들 인라인 토큰은 대응하는 타겟 표현식으로 번역된다.
2.2 PDL 평가 규칙
PDL 평가는 한 세트의 파라미터 할당에 포함되는 값을 제공하기 위해 사용될 수 있다. PDL 표현식의 일부 부분은 PDL 표현식의 번역에 로컬한 값(values local to the translation of the PDL expression)을 처리하는 서술문(statement)을 포함 할 수 있으며, 그 결과의 타겟 표현식에 직접 반영되지 않는다. 컴퓨팅 시스템(110)은 PDL 표현식 내의 문자를 해석하기 위해 다음의 일례의 규칙 세트를 사용한다.
2.2.1 파라미터 할당
소스 PDL 표현식에서 참조된 파라미터의 값은 PDL 표현식(예컨대, 한 세트의 파라미터 할당을 포함하는 파일 내의)과 별도로 또는 PDL 표현식(예컨대, 하나 이상의 PDL 표현식을 포함하는 스크립트 내의)과 인라인으로 할당될 수 있다. 이러한 인라인 파라미터 할당은 대응하는 타겟 표현식으로 번역되지 않는다. PDL 표현식에서 참조된 파라미터에 대한 값을 결정하는 것은, 다른 PDL 표현식을 번역하고 그 결과의 타겟 표현식을 평가하는 것을 수반한다.
2.2.2 직접 치환 파라미터 레퍼런스
인용 부호없이 토큰을 직접 선행하는 "$" 문자는 "직접 치환" 파라미터 레퍼런스를 나타낸다. 파라미터 레퍼런스는 파라미터 레퍼런스에 대해 치환되는 값에 바인딩된다. 예컨대, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00036
는 문자 시퀀스
Figure 112007093805680-pct00037
을 생성하기 위해 평가될 것이다. 그 후, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00038
는 문자 시퀀스
Figure 112007093805680-pct00039
를 생성하기 위해 평가될 것이다.
참조될 파라미터를 나타내는 문자를 구분하기 위해 구분자가 사용될 수 있다. 예컨대,
Figure 112007093805680-pct00040
로서 해석되지 않고 문자 시퀀스
Figure 112007093805680-pct00041
를 생성하기 위해 문자 시퀀스
Figure 112007093805680-pct00042
가 평가되도록 브레이스(brace)가 사용될 수 있다.
2.2.3 치환 플러스 인용 파라미터 레퍼런스
토큰을 구분하기 위해 단일 또는 이중 인용부호와 함께 사용된 "$" 문자는 "치환 플러스 인용" 파라미터 레퍼런스를 나타낸다. 파라미터는 참조된 파라미터에 대해 치환되는 값에 바인딩되고, 그 결과의 문자 시퀀스는 타겟 구문에 따라 인용된다. 예컨대, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00043
또는 문자 시퀀스
Figure 112007093805680-pct00044
는 문자 시퀀스
Figure 112007093805680-pct00045
(단일 인용부호를 사용하는 타겟 구문에 대해, 여기서
Figure 112007093805680-pct00046
는 전술한 예에서와 같이 값
Figure 112007093805680-pct00047
가 할당됨)를 생성하기 위해 평가된다. 마찬가지로, 파라미터 할당
Figure 112007093805680-pct00048
이 이루어진다면, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00049
는 문자 시퀀스
Figure 112007093805680-pct00050
를 생성하기 위해 평가된다.
또 다른 예에서, 타겟 구문은 인용된 리터럴 스트링 내의 2개의 역슬래시 문자
Figure 112007093805680-pct00051
에 의해 지정될 하나의 리터럴 역슬래시 문자
Figure 112007093805680-pct00052
를 요구한다. 이 경우, 파라미터 할당
Figure 112007093805680-pct00053
이 이루어질 때에, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00054
는 문자 시퀀스
Figure 112007093805680-pct00055
를 생성하기 위해 평가된다.
2.2.4 탈출 특수 문자
리터럴 "$" 문자는 파라미터 치환 동작을 "탈출"하기 위해 접두어와 같은 문자를 이용하여 소스 PDL 구문 내에 특정될 수 있다. 예컨대, 탈출 문자가 역슬래시 기호인 경우, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00056
는 문자 시퀀스
Figure 112007093805680-pct00057
를 생성하기 위해 평가된다.
"$" 문자 앞에 리터럴
Figure 112007093805680-pct00058
문자를 생성하기 위해, 2개의 역슬래시 문자
Figure 112007093805680-pct00059
가 사용될 수도 있다. 예컨대, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00060
는 직접 파라미터 치환이 이루어지는 문자 시퀀스
Figure 112007093805680-pct00061
를 생성하기 위해 평가된다. 일반적으로, "$" 문자 앞에 짝수개의
Figure 112007093805680-pct00062
문자가 있다면,
Figure 112007093805680-pct00063
문자는 쌍을 이루게 되고, "$" 문자는 파라미터 레퍼런스로서 해석된다. "$" 문자 앞에 홀수개의
Figure 112007093805680-pct00064
문자가 있다면, 인접한
Figure 112007093805680-pct00065
문자는 "$" 문자가 리터럴로(literally) 해석되도록 하며, 나머지의
Figure 112007093805680-pct00066
문자는 쌍을 이루게 된다. 그러므로, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00067
는 문자 시퀀스
Figure 112007093805680-pct00068
를 생성하기 위해 평가되며, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00069
는 문자 시퀀스
Figure 112007093805680-pct00070
를 생성하기 위해 평가된다.
2.2.5 보호 구분자
컴퓨팅 시스템(110)은 보호 구분자 내의 "직접 치환" 파라미터 레퍼런스 및 "치환 플러스 인용" 파라미터 레퍼런스 양자를 턴오프함으로써 보호 구분자를 이행 하는 것이 바라직하다. 예컨대, 문자 시퀀스
Figure 112007093805680-pct00071
를 리터럴 스트링으로서 해석하기 위해, 이중 또는 단일 인용부호 등의 보호 구분자가 사용되어, 보호된 리터럴 스트링
Figure 112007093805680-pct00072
을 산출할 수 있다. 더욱이, 보호된 리터럴 스트링 내에서는 특수 문자의 탈출이 필요하지 않다.
2.2.6 인라인 실행
"인라인" 실행 가능한 계산 또는 스크립트는 PDL 표현식을 평가하는 동안 실행될 수 있다. 이 인라인 실행은 또 다른 유형의 구분자를 이용하여 나타내진다. 예컨대,
Figure 112007093805680-pct00073
와 같은 실행 가능한 계산 또는 스크립트의 명칭은 표현식 내의
Figure 112007093805680-pct00074
로서 구분되며,
Figure 112007093805680-pct00075
(예컨대, 계산 또는 스크립트의 캡쳐된 출력)를 실행한 결과에 의해 교체된다.
인라인 스크립트는 "트랜스페어런트(tranparent)"인 파라미터 레퍼런스를 포함할 수 있다. 파라미터
Figure 112007093805680-pct00076
의 트랜스페어런트 레퍼런스는 다음의 2가지 형태
Figure 112007093805680-pct00077
또는
Figure 112007093805680-pct00078
중 하나를 취한다. 그러므로, 표현식 내의 문자 시퀀스
Figure 112007093805680-pct00079
는 문자 시퀀스
Figure 112007093805680-pct00080
를 생성하기 위해 평가된다. 그러나,
Figure 112007093805680-pct00081
또는
Figure 112007093805680-pct00082
등의 다른 유형의 "오페이크(opaque)" 파라미터 레퍼런스는 이들의 할당된 값에 바운딩되는 파라미터를 발생하지 못한다.
실행 가능한 계산 또는 스크립트가 특정 랭귀지로 실행될 것이라는 것을 나 타내기 위해 특정 유형의 구분자가 이용될 수 있다. 예컨대,
Figure 112007093805680-pct00083
는 ksh에 따른
Figure 112007093805680-pct00084
의 실행을 나타낼 수 있으며,
Figure 112007093805680-pct00085
는 DML에 따른
Figure 112007093805680-pct00086
의 실행을 나타낼 수 있다. 이와 달리, 안라인 토큰은 특정 랭귀지에서의 실행을 나타내기 위해 사용될 수 있다. 예컨대,
Figure 112007093805680-pct00087
는 skh에
Figure 112007093805680-pct00088
의 실행을 나타낼 수 있으며,
Figure 112007093805680-pct00089
는 DML에 따른
Figure 112007093805680-pct00090
의 실행을 나타낼 수 있다.
3. 파라미터 바인딩 방식
도 3은 데이터 보관소(130) 내에 저장된 일례의 파라미터 할당(136)을 나타낸다. 파라미터 할당(136)은 파라미터 명칭(200), 파라미터값(202), 및 옵션으로 파라미터 속성(204)을 포함한다. 파라미터 속성은 데이터 유형 또는 디스크립션 등의 파라미터 또는 파라미터의 값과 관련된 어떠한 정보를 포함할 수 있다. 이 예에서, 파라미터에 할당된 값은
Figure 112007093805680-pct00091
의 값을 갖는 파라미터
Figure 112007093805680-pct00092
등의 어떠한 선행 파라미터에 대한 레퍼런스를 포함할 수도 있다.
도 4를 참조하면, 일례의 파라미터 바인딩 방식에서, 컴퓨팅 시스템(110)은 평가되고 있는 소스 스크립트(302)와 관련된 파라미터에 대한 로컬 메모리(120) 내의 바인딩 환경(300)을 유지한다. 컴퓨팅 시스템(110)이 소스 스크립트(302)를 평가하기 때문에, 컴퓨팅 시스템(110)은, 바인딩 환경(300) 내에, 소스 스크립트(302) 내에서 참조되는 각각의 파라미터의 카피를 유지한다. 바인딩 환경(300) 에 저장된 정보는 그 파라미터의 파라미터 명칭(304) 및 현재값(306)을 포함한다. 각각의 파라미터는 적합한 스코핑 룰(scoping rule)에 따른 값으로 바인딩된다. 일부 경우, 컴퓨팅 시스템(110)은 상이한 스코프를 갖는 파라미터를 저장하기 위해 바인딩 환경(300) 내에 복수의 콘텍스트(context)를 유지한다.
이 예에서, 소스 스크립트(302)는, 문자 시퀀스
Figure 112007093805680-pct00093
를 포함하는 제1 소스 표현식(310)을 포함한다. 이 문자 시퀀스는 스트링값을 인용된 리터럴 표현식(예컨대, DML 처리 모드에서의)으로서 표현한다. 컴퓨팅 시스템(110)은 소스 구문에서 파라미터 레퍼런스
Figure 112007093805680-pct00094
일 수도 있는 것의 바인딩을 억제한다. 그 후, 파라미터 레퍼런스
Figure 112007093805680-pct00095
는 추후에 바운딩되도록 보존된다(예컨대, 대응하는 타겟 표현식이 평가될 때에는 값
Figure 112007093805680-pct00096
에 바운딩됨).
소스 스크립트(302)는, "치환 플러스 인용" 파라미터 레퍼런스를 통해 스트링 값을 표현하는 문자 시퀀스
Figure 112007093805680-pct00097
를 포함하는 제2 소스 표현식(312)을 포함한다. 참조된 파라미터
Figure 112007093805680-pct00098
가 또 다른 파라미터
Figure 112007093805680-pct00099
를 통해 정의되기 때문에(도 3에서), 컴퓨팅 시스템(110)은, 먼저 파라미터
Figure 112007093805680-pct00100
를,
Figure 112007093805680-pct00101
로 해석되는 자신의 할당된 값
Figure 112007093805680-pct00102
에 바인딩하고, 그 결과를 바인딩 환경(300)에 저장한다. 그 후, 컴퓨팅 시스템(110)은 파라미터
Figure 112007093805680-pct00103
를 값
Figure 112007093805680-pct00104
에 바인딩하고, 그 결과를 바인딩 환경(300)에 저장한다.
소스 스크립트(302)는, "치환 플러스 인용" 파라미터 레퍼런스를 통해 스트 링 값을 표현하는 문자 시퀀스
Figure 112007093805680-pct00105
를 포함하는 제3 소스 표현식(314)을 포함한다. 컴퓨팅 시스템(110)은 파라미터
Figure 112007093805680-pct00106
를 값
Figure 112007093805680-pct00107
에 바인딩하고, 그 결과를 바인딩 환경(300)에 저장한다.
컴퓨팅 시스템(110)은, 타겟 구문 내의 제1 소스 표현식(310)을 표현하는 제1 타겟 표현식(320)을 포함하는 타겟 스크립트(308)를 생성한다. 소스 표현식(310) 내의 문자 시퀀스
Figure 112007093805680-pct00108
가 보호 구분자(DML 처리 모드에 따른)를 포함하기 때문에, 타겟 표현식(320)은 동일한 문자 시퀀스를 포함한다.
타겟 스크립트(308)는, 인용된 값
Figure 112007093805680-pct00109
이 파라미터 레퍼런스
Figure 112007093805680-pct00110
에 대해 치환되는 제2 타겟 표현식(322)과, 인용된 값
Figure 112007093805680-pct00111
이 파라미터 레퍼런스
Figure 112007093805680-pct00112
에 대해 치환되는 제3 타겟 표현식(324)을 포함한다.
컴퓨팅 시스템(110)은 소스 스크립트(302)가 파라미터 레퍼런스에 대해 스캐닝된 후에 타겟 표현식을 생성하며, 참조된 값은 바인딩 환경(300)에 저장된다. 이와 달리, 컴퓨팅 시스템은 소스 스크립트(302)가 스캐닝되고 있을 때에 타겟 표현식을 생성한다. 그 후, 컴퓨팅 시스템(110)은 생성된 타겟 스크립트(308)를 실행하거나 및/또는 추후의 실행을 위해 타겟 스크립트(308)를 저장한다.
전술한 표현식 평가 기술은 컴퓨터 상에서의 실행을 위해 소프트웨어를 이용하여 구현될 수 있다. 예컨대, 소프트웨어는, 적어도 하나의 프로세서, 적어도 하나의 데이터 저장 시스템(휘발성 및 비휘발성 메모리 및/또는 기억 장치를 포함), 적어도 하나의 입력 장치 또는 포트, 및 적어도 하나의 출력 장치 또는 포트를 각각 포함하는 하나 이상의 프로그래밍 되었거나 프로그래밍 가능한 컴퓨터 시스템(분산형, 클라이언트/서버, 또는 그리드 등의 다양한 아키텍쳐로 이루어질 수 있는) 상에서 수행하는 하나 이상의 컴퓨터 프로그램 내의 프로시져를 형성한다. 소프트웨어는, 예컨대 계산 그래프의 설계 및 구성에 관련된 다른 서비스를 제공하는 대형 프로그램의 하나 이상의 모듈을 형성할 것이다. 그래프의 노드 및 구성요소는, 컴퓨터 판독 가능한 매체에 저장된 데이터 구조 또는 데이터 보관 장치에 저장된 데이터 모델에 따르는 기타의 구성 데이터로서 구현될 수 있다.
소프트웨어는 범용 또는 특수 용도의 프로그래밍 가능한 컴퓨터에 의해 판독 가능한 CD-ROM 등의 매체 상에 설치되거나, 또는 네트워크를 통해 소프트웨어를 실행할 컴퓨터에 전송(전파 신호로 인코딩됨)될 수도 있다. 모든 기능이 특수 용도의 컴퓨터 상에서 실행되거나, 또는 코프로세서 등의 특수 용도의 하드웨어를 이용하여 수행될 것이다. 소프트웨어는, 소프트웨어에 의해 특정되는 계산의 상이한 파트가 상이한 컴퓨터에 의해 수행되는 분산형 방식으로 실시될 수도 있다. 각각의 이러한 컴퓨터 프로그램은, 범용 또는 특수 용도의 프로그래밍 가능한 컴퓨터에 의해 판독 가능한 기억 매체 또는 장치(예컨대, 솔리드 스테이트 메모리 또는 매체, 또는 자기 또는 광학 매체) 상에 저장되거나 다운로드되어, 그 프로그램 내에 기술되어 있는 프로시져를 수행하기 위해 저장 매체 또는 장치가 컴퓨터 시스템에 의해 판독될 때에 컴퓨터를 구성 및 작동하는 것이 바람직하다. 본 발명의 시스템은, 컴퓨터 프로그램으로 구성된 컴퓨터 판독 가능한 기억 매체로서 실시되도록 고 려되어, 이와 같이 구성된 기억 매체가 컴퓨터 시스템을 특정의 사전에 정해진 방식으로 작동하도록 함으로써 그 프로그램 내에 기술된 기능을 수행하도록 할 수도 있다.
전술한 설명은 본 발명의 사상을 예시하기 위한 것으로 본 발명의 사상을 제한하려는 의도는 아니며, 본 발명의 사상은 첨부된 청구범위에 의해 정해진다. 예컨대, 전술한 다수의 기능 상의 단계는 전체 프로세스에 실질적으로 영향을 주지 않고서도 상이한 순서로 수행될 수 있다. 또한, 본 발명의 다른 실시예는 다음의 청구범위에 의해 한정되는 사상 내에 포함되는 것임은 자명하다.

Claims (74)

  1. 표현식(expression)을 번역하는 방법에 있어서,
    제1 구문(a first syntax)을 이용하여 인용된(quoted) 스트링 값을 표현하는 제1 문자 시퀀스(character sequence)를 포함하는, 제1 구문의 제1 표현식(102)을 수신하는 단계;
    상기 표현식을 표현하기 위한 제2 구문을 식별하는 단계; 및
    상기 제1 표현식을 표현하는, 제2 구문의 제2 표현식(104)을 생성하는 단계
    를 포함하며,
    상기 제2 구문의 제2 표현식을 생성하는 단계는, 제2 문자 시퀀스가 상기 제2 구문을 이용하여 상기 인용된 스트링 값을 표현하도록, 상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 단계를 포함하는,
    표현식 번역 방법.
  2. 제1항에 있어서,
    상기 제1 표현식은 복수의 실행 가능한 서술문(executable statement)을 포함하는, 표현식 번역 방법.
  3. 제1항에 있어서,
    상기 제1 표현식은 명령어-라인 입력을 포함하는, 표현식 번역 방법.
  4. 제1항에 있어서,
    상기 제1 문자 시퀀스는 제1의 참조된 값에 바인딩될 제1 파라미터를 포함하는, 표현식 번역 방법.
  5. 제4항에 있어서,
    상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 단계는,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 단계; 및
    상기 제2 구문의 인용 구문에 따라 상기 참조된 값을 포함하도록 상기 제2 문자 시퀀스를 생성하는 단계
    를 포함하는, 표현식 번역 방법.
  6. 제4항에 있어서,
    상기 제1 문자 시퀀스는 상기 제1 파라미터를 둘러싸는 구분자(delimiter)를 포함하는, 표현식 번역 방법.
  7. 제6항에 있어서,
    상기 구분자는, 인용 기호가 후속되는 달러($) 기호를 포함하는 사전 정의된 접두어(prefix)를 포함하는, 표현식 번역 방법.
  8. 제6항에 있어서,
    상기 구분자는, 인용 부호를 포함하는 사전 정의된 접미어(suffix)를 포함하는, 표현식 번역 방법.
  9. 제4항에 있어서,
    상기 제1의 참조된 값은 제2의 참조된 값에 바인딩될 제2 파라미터를 포함하는, 표현식 번역 방법.
  10. 제9항에 있어서,
    상기 표현식 번역 방법이 상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 단계를 더 포함하고,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 단계는,
    상기 제1 파라미터와, 상기 제2 파라미터를 포함하는 상기 제1의 참조된 값을 포함하는, 파라미터 레퍼런스 및 대응하는 값의 리스트를 수신하는 단계;
    상기 파라미터 레퍼런스를 평가하는 단계; 및
    상기 제2 파라미터를 상기 제2의 참조된 값에 바인딩하는 단계
    를 포함하며,
    상기 파라미터 레퍼런스를 평가하는 단계는, 상기 제1의 참조된 값을 파싱(parsing)하여 상기 제2 파라미터를 식별하는 단계를 포함하는, 표현식 번역 방법.
  11. 제10항에 있어서,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 단계는,
    상기 제2 구문에 따라 상기 제1의 참조된 값으로부터 인용된 리터럴(literal)을 생성하는 단계를 더 포함하는, 표현식 번역 방법.
  12. 제1항에 있어서,
    상기 표현식 번역 방법이, 상기 인용된 스트링 값의 표현을 생성하는 단계를 더 포함하고,
    상기 제1 문자 시퀀스는, 상기 인용된 스트링 값의 상기 표현을 둘러싸는 구분자를 포함하는, 표현식 번역 방법.
  13. 제12항에 있어서,
    상기 인용된 스트링 값은, 파라미터 레퍼런스를 나타내기 위해 상기 제1 구문에 사용되는 문자를 포함하는, 표현식 번역 방법.
  14. 제13항에 있어서,
    상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 단계는, 상기 인용된 스트링 값 내의 파라미터의 바인딩을 억제하는 단계를 포함하는, 표현식 번역 방법.
  15. 제1항에 있어서,
    상기 제2 구문은 컴퓨터 처리 가능한 언어와 호환 가능하도록 선택되는, 표현식 번역 방법.
  16. 제15항에 있어서,
    상기 컴퓨터 처리 가능한 언어는 ksh, Java, DML, C, 및 SQL로 이루어진 군 중의 하나인, 표현식 번역 방법.
  17. 제1항에 있어서,
    상기 제2 구문은 문자 시퀀스를 해석하기 위한 규칙을 포함하는, 표현식 번역 방법.
  18. 제1항에 있어서,
    상기 제2 구문을 식별하는 단계는, 상기 제1 문자 시퀀스 앞의 토큰(token)에 기초하여 구문을 식별하는 단계를 포함하는, 표현식 번역 방법.
  19. 표현식을 번역하기 위한 소프트웨어와 컴퓨터 시스템에 대한 명령어가 기록된, 컴퓨터로 판독 가능한 기록 매체에 있어서,
    상기 명령어는, 컴퓨터 시스템이,
    제1 구문을 이용하여 인용된 스트링 값을 표현하는 제1 문자 시퀀스를 포함하는, 제1 구문의 제1 표현식(102)을 수신하는 단계;
    상기 표현식을 표현하기 위한 제2 구문을 식별하는 단계; 및
    상기 제1 표현식을 표현하는, 제2 구문의 제2 표현식(104)을 생성하는 단계
    를 행하도록 하며,
    상기 제2 구문의 제2 표현식을 생성하는 단계는, 제2 문자 시퀀스가 상기 제2 구문을 이용하여 상기 인용된 스트링 값을 표현하도록, 상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 단계를 포함하는,
    컴퓨터로 판독 가능한 기록 매체.
  20. 제19항에 있어서,
    상기 제1 표현식은 복수의 실행 가능한 서술문을 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  21. 제19항에 있어서,
    상기 제1 표현식은 명령어-라인 입력을 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  22. 제19항에 있어서,
    상기 제1 문자 시퀀스는 제1의 참조된 값에 바인딩될 제1 파라미터를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  23. 제22항에 있어서,
    상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 단계는,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 단계; 및
    상기 제2 구문의 인용 구문에 따라 상기 참조된 값을 포함하도록 상기 제2 문자 시퀀스를 생성하는 단계
    를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  24. 제22항에 있어서,
    상기 제1 문자 시퀀스는 상기 제1 파라미터를 둘러싸는 구분자를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  25. 제24항에 있어서,
    상기 구분자는, 인용 기호가 후속되는 달러 기호를 포함하는 사전 정의된 접두어를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  26. 제24항에 있어서,
    상기 구분자는, 인용 부호를 포함하는 사전 정의된 접미어를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  27. 제22항에 있어서,
    상기 제1의 참조된 값은 제2의 참조된 값에 바인딩될 제2 파라미터를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  28. 제27항에 있어서,
    상기 컴퓨터로 판독 가능한 기록 매체가, 상기 컴퓨터 시스템이 상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 단계를 행하도록 하는 명령어를 더 포함하고,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 단계는,
    상기 제1 파라미터와, 상기 제2 파라미터를 포함하는 상기 제1의 참조된 값을 포함하는, 파라미터 레퍼런스 및 대응하는 값의 리스트를 수신하는 단계;
    상기 파라미터 레퍼런스를 평가하는 단계; 및
    상기 제2 파라미터를 상기 제2의 참조된 값에 바인딩하는 단계
    를 포함하며,
    상기 파라미터 레퍼런스를 평가하는 단계는, 상기 제1의 참조된 값을 파싱하여 상기 제2 파라미터를 식별하는 단계를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  29. 제28항에 있어서,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 단계는,
    상기 제2 구문에 따라 상기 제1의 참조된 값으로부터 인용된 리터럴을 생성하는 단계를 더 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  30. 제19항에 있어서,
    상기 컴퓨터로 판독 가능한 기록 매체가, 상기 컴퓨터 시스템이 상기 인용된 스트링 값의 표현을 생성하는 단계를 행하도록 하는 명령어를 더 포함하고,
    상기 제1 문자 시퀀스는, 상기 인용된 스트링 값의 상기 표현을 둘러싸는 구분자를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  31. 제30항에 있어서,
    상기 인용된 스트링 값은, 파라미터 레퍼런스를 나타내기 위해 상기 제1 구문에 사용되는 문자를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  32. 제31항에 있어서,
    상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 단계는, 상기 인용된 스트링 값 내의 파라미터의 바인딩을 억제하는 단계를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  33. 제19항에 있어서,
    상기 제2 구문은 컴퓨터 처리 가능한 언어와 호환 가능하도록 선택되는, 컴퓨터로 판독 가능한 기록 매체.
  34. 제33항에 있어서,
    상기 컴퓨터 처리 가능한 언어는 ksh, Java, DML, C, 및 SQL로 이루어진 군 중의 하나인, 컴퓨터로 판독 가능한 기록 매체.
  35. 제19항에 있어서,
    상기 제2 구문은 문자 시퀀스를 해석하기 위한 규칙을 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  36. 제19항에 있어서,
    상기 제2 구문을 식별하는 단계는, 상기 제1 문자 시퀀스 앞의 토큰(token)에 기초하여 구문을 식별하는 단계를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  37. 표현식을 번역하는 시스템에 있어서,
    제1 구문을 이용하여 인용된 스트링 값을 표현하는 제1 문자 시퀀스를 포함하는, 제1 구문의 제1 표현식(102)을 수신하는 수단;
    상기 표현식을 표현하기 위한 제2 구문을 식별하는 수단; 및
    제2 문자 시퀀스가 상기 제2 구문을 이용하여 상기 인용된 스트링 값을 표현하도록, 상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 수단을 포함하여, 상기 제1 표현식을 표현하는, 제2 구문의 제2 표현식(104)을 생성하는 수단
    을 포함하는, 표현식 번역 시스템.
  38. 제37항에 있어서,
    상기 제1 표현식은 복수의 실행 가능한 서술문을 포함하는, 표현식 번역 시스템.
  39. 제37항에 있어서,
    상기 제1 표현식은 명령어-라인 입력을 포함하는, 표현식 번역 시스템.
  40. 제37항에 있어서,
    상기 제1 문자 시퀀스는 제1의 참조된 값에 바인딩될 제1 파라미터를 포함하는, 표현식 번역 시스템.
  41. 제40항에 있어서,
    상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 수단은,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 수단; 및
    상기 제2 구문의 인용 구문에 따라 상기 참조된 값을 포함하도록 상기 제2 문자 시퀀스를 생성하는 수단
    를 포함하는, 표현식 번역 시스템.
  42. 제40항에 있어서,
    상기 제1 문자 시퀀스는 상기 제1 파라미터를 둘러싸는 구분자를 포함하는, 표현식 번역 시스템.
  43. 제42항에 있어서,
    상기 구분자는, 인용 기호가 후속되는 달러 기호를 포함하는 사전 정의된 접두어를 포함하는, 표현식 번역 시스템.
  44. 제43항에 있어서,
    상기 구분자는, 인용 부호를 포함하는 사전 정의된 접미어를 포함하는, 표현식 번역 시스템.
  45. 제40항에 있어서,
    상기 제1의 참조된 값은 제2의 참조된 값에 바인딩될 제2 파라미터를 포함하는, 표현식 번역 시스템.
  46. 제45항에 있어서,
    상기 표현식 번역 시스템이, 상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 수단을 더 포함하고,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 수단은,
    상기 제1 파라미터와, 상기 제2 파라미터를 포함하는 상기 제1의 참조된 값을 포함하는, 파라미터 레퍼런스 및 대응하는 값의 리스트를 수신하는 수단;
    상기 파라미터 레퍼런스를 평가하는 수단; 및
    상기 제2 파라미터를 상기 제2의 참조된 값에 바인딩하는 수단
    를 포함하며,
    상기 파라미터 레퍼런스를 평가하는 수단은, 상기 제1의 참조된 값을 파싱하여 상기 제2 파라미터를 식별하는 수단을 포함하는, 표현식 번역 시스템.
  47. 제46항에 있어서,
    상기 제1 파라미터를 상기 제1의 참조된 값에 바인딩하는 수단은,
    상기 제2 구문에 따라 상기 제1의 참조된 값으로부터 인용된 리터럴을 생성하는 수단을 더 포함하는, 표현식 번역 시스템.
  48. 제37항에 있어서,
    상기 표현식 번역 시스템이, 상기 인용된 스트링 값의 표현을 생성하는 수단을 더 포함하고,
    상기 제1 문자 시퀀스는, 상기 인용된 스트링 값의 상기 표현을 둘러싸는 구분자를 포함하는, 표현식 번역 시스템.
  49. 제48항에 있어서,
    상기 인용된 스트링 값은, 파라미터 레퍼런스를 나타내기 위해 상기 제1 구문에 사용되는 문자를 포함하는, 표현식 번역 시스템.
  50. 제49항에 있어서,
    상기 제1 문자 시퀀스를 이용하여 상기 제2 문자 시퀀스를 생성하는 수단은, 상기 인용된 스트링 값 내의 파라미터의 바인딩을 억제하는 수단을 포함하는, 표현식 번역 시스템.
  51. 제37항에 있어서,
    상기 제2 구문은 컴퓨터 처리 가능한 언어와 호환 가능하도록 선택되는, 표현식 번역 시스템.
  52. 제51항에 있어서,
    상기 컴퓨터 처리 가능한 언어는 ksh, Java, DML, C, 및 SQL로 이루어진 군 중의 하나인, 표현식 번역 시스템.
  53. 제37항에 있어서,
    상기 제2 구문은 문자 시퀀스를 해석하기 위한 규칙을 포함하는, 표현식 번역 시스템.
  54. 제37항에 있어서,
    상기 제2 구문을 식별하는 수단은, 상기 제1 문자 시퀀스 앞의 토큰(token)에 기초하여 구문을 식별하는 수단을 포함하는, 표현식 번역 시스템.
  55. 표현식을 평가하는 방법에 있어서,
    파라미터의 정의를 저장하는 하나 이상의 데이터 구조(136)를 수신하는 단계;
    상기 표현식에서 참조되는 하나 이상의 파라미터를 식별하는 단계;
    식별된 상기 파라미터의 각각에 대한 값을, 저장되어 있는 정의에 기초하여 결정하는 단계; 및
    결정된 파라미터 값을 바인딩 환경(binding environment)(300)에 저장하는 단계
    를 포함하고,
    상기 저장되어 있는 정의에 기초하여 결정하는 단계는, 상기 파라미터의 저장되어 있는 정의가 제2 파라미터를 참조하는, 적어도 하나의 파라미터에 대한 값을 결정하는 단계를 포함하는, 표현식 평가 방법.
  56. 제55항에 있어서,
    상기 바인딩 환경은, 식별된 파라미터에 대한 값과, 상기 식별된 파라미터를 평가하기 위해 필요한 값을 갖는 파라미터에 대한 값을 저장하며,
    상기 바인딩 환경은, 하나 이상의 데이터 구조에 저장된 정의를 갖는 파라미터의 전부에 대한 값을 저장하지는 않는,
    표현식 평가 방법.
  57. 제55항에 있어서,
    상기 표현식을, 상기 바인딩 환경으로부터의 값에 바인딩된 참조된 파라미터로 실행하는 단계를 더 포함하는, 표현식 평가 방법.
  58. 제55항에 있어서,
    상기 표현식은 프로그램 또는 스크립트의 일부분인, 표현식 평가 방법.
  59. 제55항에 있어서,
    상기 표현식은 명령어-라인 입력을 포함하는, 표현식 평가 방법.
  60. 표현식을 평가하기 위한 소프트웨어와 컴퓨터 시스템에 대한 명령어가 기록된, 컴퓨터로 판독 가능한 기록 매체에 있어서,
    상기 명령어는, 컴퓨터 시스템이,
    파라미터의 정의를 저장하는 하나 이상의 데이터 구조(136)를 수신하는 단계;
    상기 표현식에서 참조되는 하나 이상의 파라미터를 식별하는 단계;
    식별된 상기 파라미터의 각각에 대한 값을, 저장되어 있는 정의에 기초하여 결정하는 단계; 및
    결정된 파라미터 값을 바인딩 환경(300)에 저장하는 단계
    를 행하도록 하고,
    상기 저장되어 있는 정의에 기초하여 결정하는 단계는, 상기 파라미터의 저장되어 있는 정의가 제2 파라미터를 참조하는, 적어도 하나의 파라미터에 대한 값을 결정하는 단계를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  61. 제60항에 있어서,
    상기 바인딩 환경은, 식별된 파라미터에 대한 값과, 상기 식별된 파라미터를 평가하기 위해 필요한 값을 갖는 파라미터에 대한 값을 저장하며,
    상기 바인딩 환경은, 하나 이상의 데이터 구조에 저장된 정의를 갖는 파라미터의 전부에 대한 값을 저장하지는 않는, 컴퓨터로 판독 가능한 기록 매체.
  62. 제60항에 있어서,
    상기 표현식을, 상기 바인딩 환경으로부터의 값에 바인딩된 참조된 파라미터로 실행하는 단계를 더 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  63. 제60항에 있어서,
    상기 표현식은 프로그램 또는 스크립트의 일부분인, 컴퓨터로 판독 가능한 기록 매체.
  64. 제60항에 있어서,
    상기 표현식은 명령어-라인 입력을 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  65. 제60항에 있어서,
    상기 표현식에서 참조되는 하나 이상의 파라미터를 식별하는 단계는, 상기 저장되어 있는 정의에서 참조되는 하나 이상의 파라미터를 식별하는 단계를 포함하는, 컴퓨터로 판독 가능한 기록 매체.
  66. 표현식을 평가하는 시스템에 있어서,
    파라미터의 정의를 저장하는 하나 이상의 데이터 구조(136)를 수신하는 수단;
    상기 표현식에서 참조되는 하나 이상의 파라미터를 식별하는 수단;
    식별된 상기 파라미터의 각각에 대한 값을, 저장되어 있는 정의에 기초하여 결정하는 수단; 및
    결정된 파라미터 값을 바인딩 환경(300)에 저장하는 수단
    을 포함하고,
    상기 저장되어 있는 정의에 기초하여 결정하는 수단은, 상기 파라미터의 저장되어 있는 정의가 제2 파라미터를 참조하는, 적어도 하나의 파라미터에 대한 값을 결정하는 수단을 포함하는, 표현식 평가 시스템.
  67. 제66항에 있어서,
    상기 바인딩 환경은, 식별된 파라미터에 대한 값과, 상기 식별된 파라미터를 평가하기 위해 필요한 값을 갖는 파라미터에 대한 값을 저장하며,
    상기 바인딩 환경은, 하나 이상의 데이터 구조에 저장된 정의를 갖는 파라미터의 전부에 대한 값을 저장하지는 않는, 표현식 평가 시스템.
  68. 제66항에 있어서,
    상기 표현식을, 상기 바인딩 환경으로부터의 값에 바인딩된 참조된 파라미터로 실행하는 수단을 더 포함하는, 표현식 평가 시스템.
  69. 제66항에 있어서,
    상기 표현식은 프로그램 또는 스크립트의 일부분인, 표현식 평가 시스템.
  70. 제66항에 있어서,
    상기 표현식은 명령어-라인 입력을 포함하는, 표현식 평가 시스템.
  71. 제66항에 있어서,
    상기 표현식에서 참조되는 하나 이상의 파라미터를 식별하는 수단은, 상기 저장되어 있는 정의에서 참조되는 하나 이상의 파라미터를 식별하는 수단을 포함하는, 표현식 평가 시스템.
  72. 삭제
  73. 삭제
  74. 삭제
KR1020077030526A 2005-06-27 2006-06-27 컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및시스템 KR101356676B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/169,247 US7822615B2 (en) 2005-06-27 2005-06-27 Translating expressions in a computing environment
US11/169,247 2005-06-27
PCT/US2006/024942 WO2007002652A2 (en) 2005-06-27 2006-06-27 Translating expressions in a computing environment

Publications (2)

Publication Number Publication Date
KR20080021071A KR20080021071A (ko) 2008-03-06
KR101356676B1 true KR101356676B1 (ko) 2014-01-28

Family

ID=37568656

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077030526A KR101356676B1 (ko) 2005-06-27 2006-06-27 컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및시스템

Country Status (8)

Country Link
US (1) US7822615B2 (ko)
EP (2) EP2357557A1 (ko)
JP (3) JP2008547133A (ko)
KR (1) KR101356676B1 (ko)
CN (1) CN101208690B (ko)
AU (1) AU2006261754B2 (ko)
CA (1) CA2612455C (ko)
WO (1) WO2007002652A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521760B2 (en) * 2008-12-30 2013-08-27 Oracle America, Inc. Dynamic translator for requests for system resources
US8856750B2 (en) * 2010-09-28 2014-10-07 International Business Machines Corporation Task-based evaluation of user interfaces
US10620956B2 (en) 2017-03-03 2020-04-14 International Business Machines Corporation Search string processing via inline decode-based micro-operations expansion
US10324716B2 (en) 2017-03-03 2019-06-18 International Business Machines Corporation Selecting processing based on expected value of selected character
US10564967B2 (en) 2017-03-03 2020-02-18 International Business Machines Corporation Move string processing via inline decode-based micro-operations expansion
US10255068B2 (en) 2017-03-03 2019-04-09 International Business Machines Corporation Dynamically selecting a memory boundary to be used in performing operations
US10789069B2 (en) 2017-03-03 2020-09-29 International Business Machines Corporation Dynamically selecting version of instruction to be executed
US10564965B2 (en) 2017-03-03 2020-02-18 International Business Machines Corporation Compare string processing via inline decode-based micro-operations expansion
US10613862B2 (en) 2017-03-03 2020-04-07 International Business Machines Corporation String sequence operations with arbitrary terminators

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201042A (en) * 1986-04-30 1993-04-06 Hewlett-Packard Company Software process and tools for development of local language translations of text portions of computer source code
US20030135508A1 (en) * 2001-11-21 2003-07-17 Dominic Chorafakis Translating configuration files among network devices
US6625624B1 (en) * 1999-02-03 2003-09-23 At&T Corp. Information access system and method for archiving web pages

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57113147A (en) * 1980-12-31 1982-07-14 Fujitsu Ltd Compiling system for incorporated instruction
JPS63138425A (ja) * 1986-12-01 1988-06-10 Hitachi Ltd プロフアイルによるjclの自動変換方式
JPS63271636A (ja) * 1987-04-30 1988-11-09 Fujitsu Ltd 言語用マクロプロセツサ
JPH02195438A (ja) * 1989-01-24 1990-08-02 Nec Corp マクロ展開における回帰的呼び出し検出方式
JPH02236732A (ja) * 1989-03-10 1990-09-19 Fujitsu Ltd ソースプログラム作成方式
JPH03282935A (ja) * 1990-03-30 1991-12-13 Pfu Ltd コンパイル処理装置及びコンパイル処理方式
EP0501613A3 (en) * 1991-02-28 1993-09-01 Hewlett-Packard Company Heterogeneous software configuration management apparatus
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6006242A (en) * 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JPH1063511A (ja) * 1996-08-14 1998-03-06 Fuji Xerox Co Ltd ジョブスクリプト実行装置
US6088716A (en) * 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
US6173276B1 (en) * 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
JP3110367B2 (ja) * 1998-01-30 2000-11-20 日本電気アイシーマイコンシステム株式会社 ソースコンバータの処理方法及びソースコンバータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体
US6208345B1 (en) * 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6816825B1 (en) * 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
US6681386B1 (en) * 2000-05-22 2004-01-20 International Business Machines Corporation Method, system, and program for parameter expansion, generation, and execution of scripts in a networked environment
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
CA2364645A1 (en) 2001-03-07 2002-09-07 Spektor Leonid Query filter for querying a multitude of databases
EP1402728A1 (en) * 2001-06-19 2004-03-31 Koninklijke Philips Electronics N.V. Method for generatng blocks of data, method for processing of the same, television broadcasting system employing such methods, and teletext receiver arrangement for use in the system
JP2003296137A (ja) * 2002-03-29 2003-10-17 Denso Corp 実行履歴記録装置、ラベル置換装置、及びプログラム
US7496892B2 (en) * 2003-05-06 2009-02-24 Andrew Nuss Polymorphic regular expressions
JP2005141393A (ja) * 2003-11-05 2005-06-02 Nippon Telegr & Teleph Corp <Ntt> コンテンツ提供方法及びそのシステム並びにそのコンピュータプログラム及びコンピュータ読み取り可能な情報記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201042A (en) * 1986-04-30 1993-04-06 Hewlett-Packard Company Software process and tools for development of local language translations of text portions of computer source code
US6625624B1 (en) * 1999-02-03 2003-09-23 At&T Corp. Information access system and method for archiving web pages
US20030135508A1 (en) * 2001-11-21 2003-07-17 Dominic Chorafakis Translating configuration files among network devices

Also Published As

Publication number Publication date
EP1899859A2 (en) 2008-03-19
WO2007002652A3 (en) 2007-05-31
EP2357557A1 (en) 2011-08-17
US7822615B2 (en) 2010-10-26
JP2008547133A (ja) 2008-12-25
JP2015084256A (ja) 2015-04-30
US20060293875A1 (en) 2006-12-28
CA2612455A1 (en) 2007-01-04
JP2012160214A (ja) 2012-08-23
EP1899859A4 (en) 2008-12-24
CA2612455C (en) 2015-06-23
CN101208690B (zh) 2016-12-21
AU2006261754A1 (en) 2007-01-04
EP1899859B1 (en) 2018-03-21
KR20080021071A (ko) 2008-03-06
AU2006261754B2 (en) 2013-03-28
WO2007002652A2 (en) 2007-01-04
JP6162733B2 (ja) 2017-07-12
JP5740349B2 (ja) 2015-06-24
CN101208690A (zh) 2008-06-25

Similar Documents

Publication Publication Date Title
KR101356676B1 (ko) 컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및시스템
US10409966B2 (en) Optimizing and protecting software
CN109033764B (zh) 反混淆处理方法及终端、计算机设备
CN110414261B (zh) 一种数据脱敏方法、装置、设备及可读存储介质
CN102200911B (zh) 变量闭包
US7958489B2 (en) Out of band data augmentation
US11349816B2 (en) Obfuscating source code sent, from a server computer, to a browser on a client computer
CN109948308A (zh) 代码安全保护方法、装置、电子设备和计算机可读存储介质
CN112052006B (zh) 一种软件代码编译方法及系统
JP4951416B2 (ja) プログラム検証方法、プログラム検証装置
Burket et al. {GuardRails}: A {Data-Centric} Web Application Security Framework
WO2021175053A1 (zh) 一种在虚拟机中执行功能模块的方法和装置
Kim et al. Reuse-oriented reverse engineering of functional components from x86 binaries
CN110347416B (zh) 脚本的更新方法和装置
Naus et al. A formal semantics for P-Code
JP2006163686A (ja) コンパイル方法、コンパイルプログラム、コンパイル装置およびコンパイル用の記録媒体
CN114880667A (zh) 一种脚本检测方法及装置
AU2013203830B2 (en) Translating expressions in a computing environment
Haijiang et al. Nightingale: Translating embedded VM code in x86 binary executables
Loch Juturna: Lightweight, Pluggable and Selective Taint Tracking for Java
McMillan A platform independent computer virus
Wang Program Transformation for Secure and Sustainable Web Applications
CN115270118A (zh) 一种混淆特征处理方法、装置及存储介质
Juhlin Developing a Compiler for a Regular Expression Based Policy Specification Language

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170116

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180109

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190109

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200110

Year of fee payment: 7