.QL

.QL
.QL
Dotql.png
패러다임다중 중심, 논리 중심, 객체 지향적
개발자셈글
첫 등장2007
타이핑 규율정적인
주요 구현
SemmleCode
영향을 받은
데이터로그

.QL("dot-cue-el"로 발음됨)은 관계형 데이터베이스 관리 시스템에서 데이터를 검색하는 데 사용되는 객체 지향 쿼리 언어다.표준 쿼리 언어 SQL과 객체 지향 프로그래밍 언어 자바를 연상시킨다.QL은 데이터로그(Datalog)라는 논리 쿼리 언어의 객체 지향 변종이다.따라서 계층적 데이터는 에서 자연스럽게 쿼리할 수 있다.QL을 반복해서 말한다.null

에 기록된 쿼리.QL은 최적화되어 SQL로 컴파일되며, 이후 모든 주요 관계형 데이터베이스 관리 시스템에서 실행될 수 있다.QL 쿼리 언어는 Java 프로그램의 관계적 표현을 쿼리하기 위해 SemmleCode에서 사용되고 있다.null

.QL은 Semmle Limited에서 개발되었으며 이 회사의 독점 기술을 기반으로 한다.null

언어 기능

.QL에는 다음과 같은 몇 가지 언어 특징이 있어 쿼리를 간결하고 직관적이며 재사용할 수 있다.

  • 확장형 계층 구조
  • 방법 및 술어
  • 사용 전 정의

쿼리 예

아래의 샘플 쿼리는 의 사용을 예시한다.QL: Java 프로그램 쿼리10개 이상의 공개 방법을 포함하는 모든 클래스를 선택하는 방법은 다음과 같다.

 로부터 클래스 c, 인트로 NumofMethods  어디에 NumofMethods = 수를 세다(방법 m  m.getDeclaringType()=c                        그리고 m.hasModifier("공용"))        그리고 NumofMethods > 10  선발하다 c.getPackage(), c, NumofMethods 

실제로 이 쿼리는 10개 이상의 공개 방법을 가진 모든 클래스는 물론 해당 패키지와 각 클래스가 보유한 방법의 개수를 선택한다.null

참고 항목

참조

  • 헤르베 갈레르와 잭 밍커.논리 및 데이터베이스.1978년 뉴욕의 플레넘 프레스
  • 세르게이 아비테불과 파리 C.카넬라키스.쿼리 언어 원시로서의 개체 ID.SGIMOD Rec에서, ACM Press, 1989년 159–173페이지.
  • 외게 드 무어, 엘나르 하지예프, 마티외 베르베레.소프트웨어 시스템에 대한 개체 지향 쿼리.2007년 ACM SIG플랜 심포지엄 부분평가 및 의미기반 프로그램 조작에 관한 절차(PEPM), 91페이지 ACM Press, 2007.

외부 링크