Shed_Skinとは? わかりやすく解説

Shed Skin

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/16 16:53 UTC 版)

ナビゲーションに移動 検索に移動
Shed Skin
リポジトリ github.com/shedskin/shedskin
対応OS クロスプラットフォーム
種別 Python コンパイラ
ライセンス GNU General Public License (GPL)
公式サイト http://code.google.com/p/shedskin/
テンプレートを表示

Shed Skin は、暗黙的に静的に型付けされたPythonプログラムを最適化されたC++プログラムに変換する実験的なコンパイラである。型についての制約条件を満たすため、プログラムは多くの場合変更する必要があるが、変更した後でも、Python プログラムとしての正しさは保つことができる。Shed Skin は現在のところ Python の標準ライブラリをそれほど使用していない小さなプログラムに限定されている。現在までに変換できた最大のプログラムは 1,600 行である。

Shed Skin では、変数は単一の型のみ持つことができる。すなわち、たとえば a=1; a='1' といったコードは許容されない。単一の型であれば、抽象型や汎用型 (C++におけるテンプレート)でよく、クラス A とクラス B が共通の基底クラスをもてば a=A(); a=B() というコードは許容される。

ShedSkin の開発者によって作成されたテストケースでは、Shed Skin は Psycopsyco.full() による方法を使って最適化した同一のコードに対して 2-40 倍高速に動作する。しかし、ShedSkin はコンパイル可能ないくつかのプログラムで、CPython よりも著しく低速に動作する(たとえば、CPython でよく最適化されている setstr 型に大きく依存したプログラム)。[1].

Shed Skin によって生成されたコードは Python のランタイムにまったく依存しておらず、ハードウェアの制約がある組み込みシステムでも利用可能である。また Shed Skin はコードの難読化に用いることもできる。C++ コンパイラで生成した機械語はPython のバイトコードよりリバースエンジニアリングが難しいためである。

C++ の型宣言(たとえばintなど)を生成するための型を推測するため、Shed Skin は型推論の技法を用いている。Shed Skin の型推論は Ole Agesen の Cartesian Product Algorithm と John Plevyak の Iterative Class Splitting の技法を組み合わせて用いている。こうした技法はプログラムサイズの増加に対して、これまでのテストで見られた以上に対応することはできない可能性がある。

Shed Skin は Python の一部の機能のみをサポートした組み込みライブラリの C++ 実装を除くと 6,500 行のコードで記述されている。 Shed Skin は Pyrex, Boo, RPython などのプロジェクトに類似した試みである。

Shed Skin の制限

  • プログラムは Python の標準ライブラリを自由に使うことができない。一部の共通のインポートは可能である(lib/*.py を参照)
  • 現在のところ、型の解析は数百行以上のコードではうまく動作しない。
  • バージョン 0.0.22 の時点で、簡単な拡張モジュールを生成することができるが、カスタムのクラスや、戻り値・引数の再帰的なコピーがサポートされていない。
  • 生成されたC++ プログラムはlibstdc++ のほか、libgc (BoehmGC) 、libgcc (GCC)、libpcre (PCRE) 等に依存する。

関連項目

参考文献

  1. ^ Flavio Codeco Coelho (Monday, 6 August 2007). “Set implementation performance”. 2008年8月24日閲覧。

外部リンク


「Shed Skin」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Shed_Skin」の関連用語

Shed_Skinのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Shed_Skinのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのShed Skin (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS