JP6046346B2 - 宣言データのスクリプト言語のための型システム - Google Patents
宣言データのスクリプト言語のための型システム Download PDFInfo
- Publication number
- JP6046346B2 JP6046346B2 JP2011530202A JP2011530202A JP6046346B2 JP 6046346 B2 JP6046346 B2 JP 6046346B2 JP 2011530202 A JP2011530202 A JP 2011530202A JP 2011530202 A JP2011530202 A JP 2011530202A JP 6046346 B2 JP6046346 B2 JP 6046346B2
- Authority
- JP
- Japan
- Prior art keywords
- type
- value
- declarative
- types
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 230000014509 gene expression Effects 0.000 claims description 81
- 238000000034 method Methods 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 14
- 238000001914 filtration Methods 0.000 claims 1
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 20
- 238000013515 script Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 15
- 238000013500 data storage Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 7
- 230000015654 memory Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101000857680 Xenopus laevis Runt-related transcription factor 1 Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
様々な非限定的実施形態が、添付の図を参照してさらに記述される。
「背景技術」で記述したように、とりわけ従来の型システムは、作成したプログラムの表現力に制限を与え、得られたストレージ構造ならびにアルゴリズム的処理の効率に制限を与える、ある種の煩雑さならびに柔軟性の欠如を有する。従来のシステムの上記弱点は、大規模データストレージおよび処理システムに関連するような規模の大きい状態で遂行するときに特に実感される。
データスクリプト言語の型システムに対して本実施形態に関する追加の詳細が以下に記述されるが、最初に一部のコンテキストが、Dコンパイル連鎖に基づいてDプログラムを表現および使用できる種々の方法に関して、図1に説明される。たとえば、ソースコード100は、開発者または機械により直接作成可能である。ソースコード100は、次にたとえばソースコード100を解析するためのD構文解析ツール120、D構文木形成のためのD構文木コンポーネント130を含めてDコンパイラ110によってコンパイルされ、それらはその後解析されDグラフ構造140に変形できる。
{x:Any|xinT&&xinS}
{x:Any|xinT||xinS}
{x:Any|false}
Γ├e:T
Γ├S<:T
疑問を回避するため、Dプログラミング言語のような宣言型プログラミング言語に関して、本細目で提供した追加のコンテキストは、完全には網羅したものではなく、また限定を行ったものでもないと考えられるべきである。以下に述べる疑似コードについてのほんの一部の特別な例は、実例および解説のみを目的としており、様々な詳細で上記したデータスクリプト言語の型システムの実施形態を限定すると考えるべきではない。
class A
{
public string Bar;
public int Foo;
}
class B
{
public string Bar;
public int Foo;
}
type A {Bar:Text;Foo:Integer;}
type B {Bar:Text;Foo:Integer;}
f:Foo*={Bar=“1”};
f:Foo*={Bar=“2”};
f:Foo*={Bar=“3”};
f:Foo*={Bar=“3”};
f:Foo*={Bar=“1”};
f:Foo*={Bar=“2”};
f:Foo*={{Bar=“2”},{Bar=“3”},{Bar=“1”}};
1 in Number
“Hello,world” in Text
type [My Text]:Text;
“Hello,world”in[My Text]
type SmallText:Text where value.Count<7;
“Terse”in SmallText
!(“Verbose”in SmallText)
type TinyText:SmallText where value.Count<6;
type TinyText:Text where value.Count<6;
type A:Number where value<100;
type B:Number where value<100:
l in A
l in B
が、真となるであろう。次の第3の型が導入されると、
type C:Number where value>0;
以下が記述できる。
1 in C
type SuperPositive:Number where value>5;
CalcIt(20)
CalcIt(42+99)
および、このような式を禁じる、すなわち、
CalcIt(−1)
CalcIt(4)
CalcIt(GetVowelCount(someTextVariable))
CalcIt((GetVowelCount(someTextVariable) : SuperPositive))
{}in Collection
{1,false}in Collection
!(“Hello”in Collection)
T* 0以上のT
T+ 1以上のT
T#m..n mとnとの間のT
type SomeNumbers:Number+;
type TwoToFourNumbers:Number#2..4;
type ThreeNumbers:Number#3;
type FourOrMoreNumbers:Number#4..;
type SomeNumbers:Collection where value.Count>=1
&&item in Number;
type TwoToNumbers:Collection where value.Count>=2
&&value.Count<=4
&&item in Number;
type ThreeNumbers:Collection where value.Count==3
&&item in Number;
type FourOrMoreNumbers:Collection where value.Count>=4
&&item in Number;
!({ }in TwoToFourNumbers)
!({“One”,“Two”,“Three”}in TwoToFourNumbers)
{1,2,3}in TwoToFourNumbers
{1,2,3}in ThreeNumbers
{1,2,3,4,5}in FourOrMoreNumbers
{1,2}in (Number where value<3)*where value.Count%2==0
括弧内「where」オペレータはコレクションの要素に適用され、括弧外の「where」オペレータはコレクション自体に適用されることに留意されたい。
type MyEntity:Language.Entity;
{X=100,Y=200} in MyEntity
は、「MyEntity」型が、XとYとに名前を付けられたフィールドについては何も言及していないので真として評価する。
type Point{X;Y;}
{X=100,Y=200}in Point
{X=100,Y=200,Z=300}in Point //予想以上のフィールドに対して−OK
!({X=100}in Point) //フィールドが十分ではない−OKではない
{X=true, Y=“Hello,world”}in Point
type NumericPoint{
X:Number;
Y:Number where value>0
}
{X=100,Y=200}in NumericPoint
{X=100,Y=200,Z=300}in NumericPoint
!({X=true,Y=“Hello,world”}in NumericPoint)
!({X=0,Y=0}in NumericPoint)
{X=100,Y=200}in NumericPoint
{X=100,Y=200}in Point
type Point3d{
X:Number;
Y:Number;
Z=−1:Number; //負のデフォルト値
}
Zフィールドはデフォルト値を有しているので、次の型判別が成立する。
{X=100,Y=200}in Point3d
({X=100,Y=200}:Point3d)
Zフィールドは、次のようにアクセス可能である。
({X=100,Y=200}:Point3d).Z
この場合、この式は値−1となる。
type PointND{
X:Number;
Y:Number;
Z:Number?; //Zはオプショナル
BeyondZ:Number*; //BeyondZもオプショナルである。
}
{X=100,Y=200}in PointND
および、「PointND」はその値に対して帰属することにより、これらのデフォルトを生成する。
({X=100,Y=200}:PointND).Z==null
({X=100,Y=200}:PointND).BeyondZ=={}
type PointPlus{
X:Number;
Y:Number;
//計算値
IsHigh():Logical{Y>0;}
}
セミコロンで終わるフィールド宣言とは異なり、計算値宣言は、波括弧により囲まれる式で終了することに留意されたい。
type PointPlus{
X:Number;
Y:Number;
//型帰属なしの計算値
InMagicQuadrant(){IsHigh && X>0;}
IsHigh():Logical{Y>0;}
}
type PointPlus{
X:Number;
Y:Number;
//パラメータを要求する計算値
WithinBounds(radius:Number):Logical{
X*X+Y*Y<=radius*radius;
}
InMagicQuadrant(){IsHigh && X>0;}
IsHigh():Logical{Y>0;}
}
({X=100,Y=200}:PointPlus).WithinBounds(50)
type Point{
X:Number;
Y:Number;
}
type RichPoint{
X:Number;
Y:Number;
Z=−1:Number;
IsHigh():Logical{X<Y;}
}
type WeirdPoint{
X:Number;
Y:Number;
Z=42:Number;
IsHigh():Logical{false;}
}
{X=1,Y=2}in WeirdPoint
({X=1,Y=2}:RichPoint).IsHigh==true
({X=1,Y=2}:WeirdPoint) .IsHigh==false
(({X=1,Y=2}:RichPoint):WeirdPoint).IsHigh==false
次に、最外部の帰属が呼び出される関数を決定する。
({X=1,Y=2}:RichPoint).Z==−1
基礎エンティティ値は、まだ、2つのフィールド値(XおよびYに対して、夫々1および2)を含むだけである。この点に関して、デフォルト値は計算値と異なっており、帰属が連鎖している。例えば、次の式を考えてみる。
(({X=1,Y=2}:RichPoint):WeirdPoint).Z==−1
「RichPoint」帰属を最初に適用するので、結果として得たエンティティは、−1の値を有するZと名付けられたフィールドを持つが、その値に割当てられたストレージはなく、すなわち、値に関する型の解釈の1部である。従って、「WeirdPoint」帰属が適用されるとき、Zと名付けられたフィールドを有する一番目の帰属の結果に適用され、結果として、Zに対して値を特定するために値を使用する。このように、「WeirdPoint」が特定したデフォルト値は必要とはされない。
type HighPoint{
X:Number;
Y:Number;
}where X<Y;
{X=100,Y=200}in HighPoint
!({X=300,Y=200}in HighPoint)
両式は真である。
type Point{
X:Number;
Y:Number;
}
type Visual{
Opacity:Number;
}
type VisualPoint{
DotSize:Number;
}where value in Point && value in Visual;
第3の型、「VisualPoint」は、少なくとも数値フィールドX、Y、Opacity、およびDotsizeを有するエンティティ値の集合を指定する。
type VisualPoint:Point,Visual{
DotSize:Number;
}
type VisualPoint={
X:Number;
Y:Number;
Opacity:Number;
DotSize:Number;
}
from p in People
where p.Age=30
select p
People where value.Age=30
Collection where Expression
は、以下の式と等価である。
from value in Collection
where Expression
select value
Collection.Field(Expression)
は、以下の式と等価である。
from value in Collection
where Field==Expression
select value
from p in People
select p.First+p.Last
式「select」は、コレクションの各メンバ上で算出され、その結果を返す。
Collection select Expression
は、以下の式と等価である。
from value in Collection
select Expression
People select value.First
コンパイラは、アクセサ(accessors)をコレクションに追加し、それにより単一フィールドは、「People.First」および「People.Last」として直接抽出できる。
module Geometry{
//型を宣言
type Point{
X:Integer;Y:Integer;
}
//幾つかのエクステントを宣言
Point:Point*;
Origin:Point;
//計算値を宣言
TotalPointCount{Points.Count+1;}
}
module MyModule{
import HerModule; //HerTypeを宣言
export MyType1;
export MyExtent1;
type MyType1:Logical*;
type MyType2:HerType;
MyExtent1:Number*;
MyExtent2:HerType;
}
他のモジュールは単に「MyType1」および「MyExtent1」だけを見えることに留意されたい。それにより、「HerModule」の次の定義が正式なものになる。
module HerModule{
import MyModule; //MyType1およびMyExtent1を宣言
export HerType;
type HerType:Text where value.Count<100;
type Private:Number where!(value in MyExtent1);
SomeStorage:MyType1;
}
この例で示すように、モジュールは、循環依存性(circular dependency)を有している。
当業者には、本明細書で記述するデータスクリプト言語の型システムに対して、様々な実施形態が、任意のコンピュータまたは他のクライアントもしくはサーバデバイスと接続して実装可能であり、コンピュータネットワーク、または分散型コンピューティング環境の一部として配置可能であり、また任意の種類のデータストアに接続可能であることは理解されよう。この点に関して、本明細書で記述した様々な実施形態は、任意のコンピュータシステムまたは任意の数のメモリもしくは記憶装置を有する環境で、ならびに任意な数のアプリケーションおよび任意な数の記憶装置にわたって生ずるプロセスを実装可能である。これは、サーバコンピュータおよびネットワーク環境で配置されるクライアントコンピュータを有する環境、または、リモートもしくはローカルストレージを有する分散型コンピューティング環境を含むが、これに限定されない。
上述したように、本明細書で記述した技術は、任意のデバイスに有利に適用可能であるが、データ集約型アプリケーションに接続するどのような種類のデータにも適応する型を、簡単にかつ柔軟性をもって定義することが望まれる。従って、ハンドヘルド、携帯用、その他のコンピューティングデバイスならびに全種類のコンピューティングオブジェクトが、様々な実施形態に関連して使用すると想定される、すなわち、デバイスがいかなるところでも、迅速かつ効果的に、大量のデータを走査または処理することを意図されていることを理解されたい。従って、図17の下方に説明される下記の汎用リモートコンピュータは、単なるコンピューティングデバイスの一例である。
およびプリンタ等の他の周辺出力デバイスを含むこともできる。
Claims (10)
- コンピュータシステムであって、
宣言コードを含むコンピュータ実行可能命令を備えた少なくとも1つのコンピュータ可読モジュールであって、前記宣言コードは、制約ベースの型リファインメントおよび型メンバシップを支援する型システムを実装する宣言型プログラミングモデルに従い、前記少なくとも1つのコンピュータ可読モジュールは、全ての型を表現するトップ型に対する前記型を形成することにより型を定義する前記型システムのリファインメント型を備えるプログラミング構文を含み、前記プログラミング構文のリファインメント型を定義する式は、型判別式を含み、前記型判別式は、該型判別式内の式を評価して、得られる値が指定した型のメンバであるかを決定する、前記少なくとも1つのコンピュータ可読モジュールと、
データを含む少なくとも1つのデータストアであって、前記コンピュータ実行可能命令のうちの少なくとも1つにより、前記コンピュータシステムは、前記データのアクセス、修正、フィルタリング、変形、バージョニング、および処理のうちの少なくとも1つを、前記宣言コードのプログラミング構文に基づいて行う、少なくとも1つのデータストアと、
少なくとも1つの判定に基づきエラーが生じたかを決定するように構成された型チェックモジュールであって、前記少なくとも1つの判定は、少なくとも1つの型に関連した少なくとも1つのコンテキストに基づく、型チェックモジュールと
を備えることを特徴とするコンピュータシステム。 - 請求項1に記載のシステムであって、型が値を有し、値が型を有することを特徴とするシステム。
- 請求項1に記載のシステムであって、前記プログラミング構文が、前記型リファインメント構文で特定した少なくとも2つの型の共通集合の仕様を含むことを特徴とするシステム。
- 請求項1に記載のシステムであって、前記プログラミング構文が、前記型リファインメント構文で特定した少なくとも2つの型の和集合の仕様を含むことを特徴とするシステム。
- 請求項1に記載のシステムであって、前記プログラミング構文が、前記型リファインメント構文で特定した少なくとも2つの型の和集合および少なくとも2つの型の共通集合の仕様を含むことを特徴とするシステム。
- 請求項1に記載のシステムであって、前記プログラミング構文が、有効である全ての型がメンバであるトップ型の仕様を含むことを特徴とするシステム。
- コンピューティングデバイスの少なくとも1つのプロセッサにより宣言コードを実行する方法であって、
前記コンピューティングデバイスによる実行のために、型付けシステムに従い特定される宣言プログラムであって、前記型付けシステムが、前記宣言プログラムのプログラミング構文内で、型判別式を含む式に基づくリファインメント、および前記宣言プログラムの有効な全ての値がメンバであるトップ型による型付けを支援し、前記型判別式は、該型判別式内の式を評価して、得られる値が指定した型のメンバであるかを決定する、前記宣言プログラムを受信するステップと、
型付け規則の集合および前記型付けシステムに関連する判定に従い、前記宣言プログラムで表現される型を型チェックするステップであって、前記判定のうちの少なくとも1つは、少なくとも1つの型に関連した少なくとも1つのコンテキストに基づく、ステップと
を含む方法。 - 請求項7に記載の方法であって、前記宣言プログラムを受信するステップは、値を有する型および型を有する値を支援する型付けシステムに従って前記宣言プログラムを受信するステップを含むことを特徴とする方法。
- 請求項7に記載の方法であって、前記宣言プログラムを受信するステップは、少なくとも2つの型の前記宣言プログラムの共通集合を表現する共通集合型である型の定義を受信するステップを含むことを特徴とする方法。
- 請求項7に記載の方法であって、前記宣言プログラムを受信するステップは、少なくとも2つの型の前記宣言プログラムの和集合を表現する和集合型である型の定義を受信するステップを含むことを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/244,981 US8949784B2 (en) | 2008-10-03 | 2008-10-03 | Type system for declarative data scripting language |
US12/244,981 | 2008-10-03 | ||
PCT/US2009/059110 WO2010039891A2 (en) | 2008-10-03 | 2009-09-30 | Type system for declarative data scripting language |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012504822A JP2012504822A (ja) | 2012-02-23 |
JP2012504822A5 JP2012504822A5 (ja) | 2012-11-01 |
JP6046346B2 true JP6046346B2 (ja) | 2016-12-14 |
Family
ID=42074194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011530202A Active JP6046346B2 (ja) | 2008-10-03 | 2009-09-30 | 宣言データのスクリプト言語のための型システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US8949784B2 (ja) |
EP (1) | EP2350866A4 (ja) |
JP (1) | JP6046346B2 (ja) |
CN (1) | CN102171681A (ja) |
WO (1) | WO2010039891A2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805887B2 (en) * | 2008-10-03 | 2014-08-12 | Microsoft Corporation | Packaging system to facilitate declarative model-driven development |
US8209658B2 (en) * | 2009-02-24 | 2012-06-26 | International Business Machines Corporation | Method of creating signatures for classifying program failures |
US9400638B2 (en) * | 2011-11-08 | 2016-07-26 | Microsoft Technology Licensing, Llc | Reactive expression generation and optimization |
US9563412B2 (en) | 2013-03-13 | 2017-02-07 | Microsoft Technology Licensing, Llc. | Statically extensible types |
US9639335B2 (en) | 2013-03-13 | 2017-05-02 | Microsoft Technology Licensing, Llc. | Contextual typing |
US9696974B2 (en) | 2013-03-13 | 2017-07-04 | Microsoft Technology Licensing, Llc. | Graph-based model for type systems |
US9652207B2 (en) | 2013-03-13 | 2017-05-16 | Microsoft Technology Licensing, Llc. | Static type checking across module universes |
US9038037B1 (en) * | 2014-07-22 | 2015-05-19 | Ted J. Biggerstaff | Automatically solving simultaneous type equations for type difference transformations that redesign code |
US10109010B2 (en) * | 2014-09-15 | 2018-10-23 | Aesthetic Integration Ltd. | System and method for modeling and verifying financial trading platforms |
US11385874B2 (en) * | 2020-02-03 | 2022-07-12 | Sap Se | Automatic type determination for database programming |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758032A (en) | 1995-04-13 | 1998-05-26 | Sterling Software, Inc. | Method and system for automated transformation of declarative language process specification |
TWI344595B (en) | 2003-02-14 | 2011-07-01 | Advantest Corp | Method and structure to develop a test program for semiconductor integrated circuits |
US7389498B2 (en) | 2003-03-25 | 2008-06-17 | Microsoft Corporation | Core object-oriented type system for semi-structured data |
US7685581B2 (en) | 2003-06-27 | 2010-03-23 | Microsoft Corporation | Type system for representing and checking consistency of heterogeneous program components during the process of compilation |
US6976029B2 (en) | 2004-02-10 | 2005-12-13 | Microsoft Corporation | System and method for providing user defined types in a database system |
US7836428B2 (en) | 2004-03-15 | 2010-11-16 | Bungee Labs, Inc. | Declarative computer programming language method and system |
US7509631B2 (en) | 2004-05-21 | 2009-03-24 | Bea Systems, Inc. | Systems and methods for implementing a computer language type system |
US7966610B2 (en) * | 2005-11-17 | 2011-06-21 | The Mathworks, Inc. | Application of optimization techniques to intermediate representations for code generation |
US20080148223A1 (en) | 2006-12-19 | 2008-06-19 | Milind Arun Bhandarkar | System for defining a declarative language |
-
2008
- 2008-10-03 US US12/244,981 patent/US8949784B2/en active Active
-
2009
- 2009-09-30 WO PCT/US2009/059110 patent/WO2010039891A2/en active Application Filing
- 2009-09-30 EP EP09818473A patent/EP2350866A4/en not_active Ceased
- 2009-09-30 CN CN200980140409.0A patent/CN102171681A/zh active Pending
- 2009-09-30 JP JP2011530202A patent/JP6046346B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
CN102171681A (zh) | 2011-08-31 |
JP2012504822A (ja) | 2012-02-23 |
US20100088661A1 (en) | 2010-04-08 |
EP2350866A2 (en) | 2011-08-03 |
EP2350866A4 (en) | 2012-04-25 |
WO2010039891A3 (en) | 2010-07-01 |
WO2010039891A2 (en) | 2010-04-08 |
US8949784B2 (en) | 2015-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6046346B2 (ja) | 宣言データのスクリプト言語のための型システム | |
Pawlak et al. | Spoon: A library for implementing analyses and transformations of java source code | |
US8762942B2 (en) | Bidirectional type checking for declarative data scripting language | |
US9229696B2 (en) | Common intermediate representation for data scripting language | |
JP5542142B2 (ja) | 宣言型プログラミング言語の木ベースの有向グラフのプログラミング構造 | |
US8321833B2 (en) | Compact syntax for data scripting language | |
US8413119B2 (en) | Semantic subtyping for declarative data scripting language by calling a prover | |
Cunha et al. | Translating between Alloy specifications and UML class diagrams annotated with OCL | |
EP3970002A1 (en) | Persistent annotation of syntax graphs for code optimization | |
US20100088686A1 (en) | Programming language with extensible syntax | |
US10019243B2 (en) | Packaging system to facilitate declarative model-driven development | |
US9292586B2 (en) | System and method for synchronizing a repository with a declarative defintion | |
Yang et al. | Powerstation: Automatically detecting and fixing inefficiencies of database-backed web applications in ide | |
US20120151395A1 (en) | Configuration of custom controls in data-driven environments | |
Cheung et al. | Inferring SQL queries using program synthesis | |
US20100088283A1 (en) | System and method for managing database applications | |
Nicolay et al. | Purity analysis for JavaScript through abstract interpretation | |
Hedenborg et al. | A framework for memory efficient context-sensitive program analysis | |
Li | A general pluggable type inference framework and its use for data-flow analysis | |
Tang et al. | Axioms as generic rewrite rules in C++ with concepts | |
Lano et al. | Transformation from UML to C: A large-scale example of MDD for model transformation development | |
Grunwald | Translating Alloy specifications to JML | |
Craik | A framework for reasoning about inherent parallelism in modern object-oriented languages | |
Gil et al. | JTL–the Java Tools Language | |
Dietl et al. | Tunable Universe Type Inference Technical Report 659 Department of Computer Science, ETH Zurich |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120914 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120914 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20130701 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130718 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131004 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20131218 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20131226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140404 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20141113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150226 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20150305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150326 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20150520 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150618 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20150904 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161117 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6046346 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |