| 事業の種類 | 子会社 |
|---|---|
| 設立 | 2006年12月、イギリス、オックスフォード |
| 本部 | 米国カリフォルニア州サンフランシスコ |
| 創設者 | オーゲ・デ・ムーア |
| 主要人物 | ウーゲ・デ・ムーア、パベル・アヴグスティノフ、ジュリアン・ティブル |
| 業界 | ソフトウェア分析 |
| 製品 | コード分析ソフトウェアとサービス |
| 親 | GitHub [1] (2019年現在) |
| メールアドレス | semmle.com [リンク切れ ] |
Semmle Inc はコード分析プラットフォームです。Semmle は 2019 年 9 月 18 日にGitHub ( Microsoftが所有)に買収されましたが、買収額は非公開です。 [2] Semmle の LGTM 技術は、コードレビューを自動化し、開発者の貢献を追跡し、ソフトウェアのセキュリティ問題をフラグ付けします。[2] LGTM プラットフォームは、CodeQL クエリ エンジン (旧 QL) [3]を活用して、ソフトウェア コード ベースのセマンティック分析を実行します。GitHub は、Semmle 技術を統合して、継続的な脆弱性検出サービスを提供することを目標としています。[4] 2019 年 11 月、CodeQL は研究およびオープンソースでの使用が無料になりました。[5] CodeQL は、 Datalogファミリー ツリーから派生した.QL (ドット、クエル)と直接の系譜を共有しているか、同様の技術の進化形です。[説明が必要]
SemmleCode は、 Semmle によって開発された演繹データベース用のオブジェクト指向 クエリ言語です。このクラス内では、再帰クエリをサポートしている点が特徴的です。
企業背景
同社はサンフランシスコに本社を置き、イギリスのオックスフォード中心部のアルフレッド・ストリート、ブルー・ボア・コートに開発拠点を置いていた。セムルの顧客にはクレディ・スイス、NASA、デルなどが含まれていた。[6]
SemmleCodeの背景
アカデミック
SemmleCode は、ソフトウェア プログラムのソースを照会する学術研究に基づいています。最初のシステムは Linton の Omega システム[7]で、照会はQUELで表現されていました。QUEL は照会での再帰を許可しなかったため、呼び出しグラフなどの階層的なプログラム構造を検査することが困難でした。そのため、次の重要な開発は、XL C++ ブラウザーでそのような再帰照会を許可する論理プログラミングの使用でした。 [8]ただし、完全な論理プログラミング言語を使用することの欠点は、許容できる効率を達成するのが非常に難しいことです。オックスフォード大学で開発されたCodeQuest システム[9]は、論理プログラミングの非常に制限的なバージョンであるDatalogが表現力と効率の間のスイート スポットにあるという観察を活用した最初のシステムでした。QL照会言語は、 Datalog のオブジェクト指向バージョンです。
産業
ソフトウェア プログラムのソースを照会する初期の研究は、多くの産業用アプリケーションを生み出しました。特に、アプリケーション インテリジェンス (ソフトウェア システムのソースのデータ マイニング) とソフトウェア更新のシステムの基礎となりました。2007 年、パリに拠点を置く CAST [10]はこの分野のマーケット リーダーの 1 つであり、他の主要プレーヤーにはイスラエルのヘルツリーヤにあるBluePhoenixがあります。SemmleCode は、オブジェクト指向のクエリ言語を使用する点でこれらのシステムと異なり、プログラマーが自分のプロジェクトに固有の新しいクエリを簡単に作成できます。
SemmleCodeの誕生に至るまでの学術的、産業的発展の詳細な説明は、Hajiyevらの論文[11]に記載されています。
QL のサンプルクエリ
QL の使用法を説明するために、オブジェクト指向プログラミングにおけるよく知られたルールである、パブリック フィールドは final として宣言する必要があるというルールを考えてみましょう。このルール違反を見つけるには、パブリックだが final ではないフィールドを検索する必要があります。QL では、この要件は次のように表現されます。
フィールドfから、 f . hasModifier ( "public" )かつnot ( f . hasModifier ( "final" ))で、 f . getDeclaringType (). getPackage ()、f . getDeclaringType ()、fを選択します。
ここでは、問題のあるフィールドだけでなくf、その宣言が行われるパッケージと型も選択されます。
開発環境とのSemmleCodeの統合
SemmleCode は、Eclipse IDEを介してJava コード (ソース コードとバイトコードの両方) および XML ファイルをクエリし、QL クエリを編集するためのユーザー インターフェイスを提供します。ただし、これは SemmleCode の基盤となるテクノロジの 1 つのアプリケーションにすぎません。QL は、他の種類の複雑なデータをクエリするために使用できます。
Microsoft/GitHubの企業体への統合の一環として、元のEclipseベースのワークフローは、MicrosoftのVisual Studio Codeをベースにしたワークフローに置き換えられました。[3]
参照
参考文献
- ^ 「GitHub が Semmle を買収し、開発者がコードのエクスプロイトを見つけられるように支援」venturebeat.com 2019 年 9 月 18 日。2019年9 月 20 日閲覧。
- ^ ab Lardinois, Frederic (2019年9月18日). 「GitHubがコード分析ツールSemmleを買収」. techcrunch.com . TechCrunch . 2021年3月13日閲覧。
- ^ ab 「CodeQL の紹介」。semmle.com。Semmle。2019年 9 月。2021年3 月 13 日閲覧。
「QL」製品とツールは CodeQL に名前が変更されました。以前は「QL スナップショット」と呼ばれていたものは、現在 CodeQL データベースです。
- ^ De Simone, Sergio (2019年9月19日). 「GitHub、継続的な脆弱性検出のためにSemmleコード分析を統合」. infoq . InfoQ . 2021年3月13日閲覧。
- ^ Krill, Paul (2019年11月15日). 「GitHub が CodeQL を研究およびオープンソース向けに無料化」. infoworld.com . InfoWorld . 2021年3月13日閲覧。
- ^ 「スピンアウト企業SemmleがAccel Partnersから800万ドルを確保」(プレスリリース)。オックスフォード大学。2014年9月16日。 2015年9月18日閲覧。
- ^ 「リントンのオメガシステム」。米国:カリフォルニア大学バークレー校。1983年。
- ^ Shahram Javey、Kin'ichi Mitsui、Hiroaki Nakamura、Tsuyoshi Ohira、Kazu Yasuda、Kazushi Kuse、Tsutomu Kamimura、および Richard Helm。XL C++ ブラウザーのアーキテクチャ。CASCON '92: Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research、369~379 ページ。IBM Press、1992 年。
- ^ 「CodeQuest システム」。英国:オックスフォード大学コンピューティング研究所。2006 年 10 月 9 日時点のオリジナルよりアーカイブ。
- ^ 「CASTソフトウェア」。
- ^ Elnar Hajiyev、Mathieu Verbaere、Oege de Moor、「CodeQuest: Datalog を使用したスケーラブルなソースコードクエリ」。ECOOP 2006 : 2006 年ヨーロッパオブジェクト指向プログラミング会議の議事録、2 ~ 27 ページ。Springer 、2006 年。
さらに読む
- Mark A. Linton. プログラムのリレーショナル ビューの実装。Peter B. Henderson 編著、Software Development Environments (SDE)、132 ~ 140 ページ、1984 年。
外部リンク
- 公式サイト
