ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

Cython

索引 Cython

Cython は、C言語によるPythonの拡張モジュールの作成の労力を軽減することを目的として開発されたプログラミング言語である。その言語仕様はほとんど Python のものと同じ (上位互換) だが、Cの関数を直接呼び出したり、C言語の変数の型やクラスを宣言できるなどの拡張が行われている。Cython の処理系ではソースファイルを C のコードに変換し、コンパイルすれば Python の拡張モジュールになるようにして出力する。 このように C と Python をシームレスに取り混ぜて扱う Cython の利点の一つは、既にある Python コードを、いくつかの静的な型 (static type, en) を宣言して律速なループをうまく書き直すだけで、コンパイル後のコードの実行速度がC言語並みに高速化されることである。複雑なC言語インターフェイスを使う必要はない。コーディングのしやすさと可読性は Python と変わらない、つまり Pythonic (en) なままである。数値計算/配列操作では、多くの場合実行速度がおおよそ100倍になる。Python の JIT コンパイラである Psyco の場合はおおよそ 4 倍である。 Cython は Pyrex 言語から派生したもので、Pyrex に比べると様々な機能や高度な最適化が加えられている。 フリーの数値計算・数式処理システムであるSAGE の一部は Cython で書かれている。 Cython の処理系は Python で書かれており、Windows、Linux、macOS で実行できる。.

14 関係: Apache License実行時コンパイラプログラミング言語フリーソフトウェアクロスプラットフォームC言語LinuxMacOSMicrosoft WindowsPsycoPyrexPythonSageMathShed Skin

Apache License

Apache License(アパッチ・ライセンス)は、Apacheソフトウェア財団 (ASF) によるソフトウェア向けライセンス規定。1.1以前は、Apache Software License(ASL)と称していた。著作権表示と免責事項表示の保持を求めている。1.1以降のバージョンはOpen Source Initiativeがオープンソースライセンスと承認している。GNUプロジェクトは、1.1以前のバージョンをGPL非互換で非コピーレフトのフリーソフトウェアライセンス、バージョン2.0をGPLバージョン3互換(GPL2以前とは非互換)のフリーソフトウェアライセンスと判断している。ソースコードはフリーソフトウェアやオープンソースプロジェクトでの開発にも使え、プロプライエタリ・ソフトウェアやクローズドソースの開発にも使える。BSDライセンスをベースに作成されたBSDスタイルのライセンスの一つである。 ASFやそのサブプロジェクトが作成するソフトウェアは、すべてApache Licenseで提供されている。ASF以外のソフトウェアでもApache Licenseを使っているものがある。2010年6月現在、SourceForge.netにある5000以上のASF以外のプロジェクトがApache Licenseでリリースされている。.

新しい!!: CythonとApache License · 続きを見る »

実行時コンパイラ

実行時コンパイラ(じっこうじコンパイラ、、JITコンパイラ、その都度のコンパイラ)とは、ソフトウェアの実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラのこと。通常のコンパイラはソースコード(あるいは中間コード)から対象CPUの機械語への変換を実行前に事前に行い、これをJITと対比して事前コンパイラ (Ahead-Of-Timeコンパイラ、AOTコンパイラ)と呼ぶ。.

新しい!!: Cythonと実行時コンパイラ · 続きを見る »

プログラミング言語

プログラミング言語(プログラミングげんご、programming language)とは、コンピュータプログラムを記述するための形式言語である。なお、コンピュータ以外にもプログラマブルなものがあることを考慮するならば、この記事で扱っている内容については、「コンピュータプログラミング言語」(computer programming language)に限定されている。.

新しい!!: Cythonとプログラミング言語 · 続きを見る »

フリーソフトウェア

フリーソフトウェア (free software) とは、ソフトウェアのうち、フリーソフトウェア財団が提唱する自由ソフトウェアを指す。大半のフリーソフトウェアは無償(フリー)で配布されているが、定義に従えば、ここでいうフリーソフトウェアについて一次配布が無償である必要は必ずしもない。 フリーソフトウェア財団はフリーソフトウェアの定義を提示している。ソフトウェアライセンスについてはフリーソフトウェアライセンスを参照。 定義に照らして自由ではない、すなわち改造や再配布などに制限が掛かっていたり、ソースコードが開示されていない、無償で利用できるソフトウェアとは異なる概念であり、この場合はフリーウェアもしくは無料ソフトと呼ぶことが望ましいとフリーソフトウェア財団はしている。 逆に定義に従ったソフトウェアであれば、一次的な配布が有償であってもフリーソフトウェアと呼ぶことができる。ただし、前述したように配布が自由であるため、ほとんどのフリーソフトウェアは無償で配布されている。 また、現状強い影響力を持つ定義として、フリーソフトウェア財団の定義の他に、DebianフリーソフトウェアガイドラインとそれをベースにしたOpen Source Initiativeのオープンソースの定義がある。.

新しい!!: Cythonとフリーソフトウェア · 続きを見る »

クロスプラットフォーム

プラットフォーム(cross-platform)とは、異なるプラットフォーム(例えばPC/AT互換機とMacintosh、あるいはWindows・macOS・FreeBSD・Linuxなどのように、仕様が全く異なる機械(ハードウェア)またはオペレーティングシステム)上で、同じ仕様のものを動かすことが出来るプログラム(ソフトウェア)のことを言う。同様の呼称にマルチプラットフォームがある。 また、家庭用ゲームにおいては「クロスプラットフォーム」と「マルチプラットフォーム」で意味が異なる場合がある。本項ではこのケースについても後述する。.

新しい!!: Cythonとクロスプラットフォーム · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: CythonとC言語 · 続きを見る »

Linux

Linux(リナックス、他の読みは後述)とは、Unix系オペレーティングシステムカーネルであるLinuxカーネル、およびそれをカーネルとして周辺を整備したシステム(GNU/Linuxシステムも参照)である。.

新しい!!: CythonとLinux · 続きを見る »

MacOS

macOS(マックオーエス)は、アップルが開発・販売する、Macのオペレーティングシステムである。かつての名称はOS X、Mac OS Xであった(後述)。 技術的に直系ではないが、Classic Mac OS (Mac OS、System) の後継として、新たにBSD系UNIXをベースに開発された。.

新しい!!: CythonとMacOS · 続きを見る »

Microsoft Windows

Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群。グラフィカルユーザインタフェース (GUI)を採用している。.

新しい!!: CythonとMicrosoft Windows · 続きを見る »

Psyco

Psyco は Python 向けの特化コンパイラ/JIT コンパイラ であり Armin Rigo によって開発された。Psyco は I/O 依存のアプリケーションの速度をそれほど向上させることはないが、CPU 依存のアプリケーションの速度を著しく高速化させる。実際の高速化の幅は大きくアプリケーションに依存し、わずかに速度が低下する場合(きわめて稀だが)から 40 倍に高速すること(こちらも稀である)まで様々である。.

新しい!!: CythonとPsyco · 続きを見る »

Pyrex

Pyrex は、Pythonの拡張モジュールの作成を補助する目的で開発されたプログラミング言語である。Python は拡張モジュールを記述するためのC言語のAPIを提供している。関数とデータ型をC言語で記述することができ、記述したモジュールは Python からアクセスすることができる。既存の C ライブラリ の関数とデータ型を Python オブジェクトとしてラップし、Python から利用可能にすることもできる。 こうしたプロセスの自動化を補助する SWIG のようなツールも存在するが、Python から外部のライブラリを利用可能にすることに限定されており、API の変更が必要な場合、再度グルーコードを手で記述する必要がある。このような場合に Pyrex は適している。Pyrex ではユーザーが C コードに直接アクセス可能な Python に似た言語を用いて、拡張モジュールを記述することを可能にする。 Pyrex と Python の文法が似ているため、Python のモジュールを記述するのは容易であり、C や C++ などの異なる言語を習得する必要がない。また、グルーコードを書く必要もない。C のヘッダファイルと、拡張モジュールでアクセスする必要のある列挙型、データ型、関数を指定するだけでよい。Pyrex コンパイラが必要なグルーコードを自動的に生成し、Pyrex コードを動作する Python モジュールにコンパイルしてくれる。.

新しい!!: CythonとPyrex · 続きを見る »

Python

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。.

新しい!!: CythonとPython · 続きを見る »

SageMath

SageMath(セイジ、以前はSage、SAGEと記した)は数学の幅広い処理を扱うソフトウェアである。扱う処理は計算機代数、組み合わせ、数値計算など多岐に及ぶ。工学的応用に加え基礎科学の研究もカバーする。 SageMathは2005年2月24日にフリーソフトウェアとしてGNU General Public Licenseの元で初版が公開された。その開発目的はMagma、Maple、Mathematica(いずれも計算機代数ソフトウェア)、MATLABの代替となるフリーかつオープンソースなソフトウェアを提供することであった。開発は、米ワシントン大学の数学准教授のウィリアム・スタイン (William Stein) が主導して始まった。 SageMathはPythonプログラミング言語を使用しており、手続き型・関数型・オブジェクト指向によるプログラムの記述を行うことができる。.

新しい!!: CythonとSageMath · 続きを見る »

Shed Skin

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

新しい!!: CythonとShed Skin · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »