LoginSignup
2
0

More than 5 years have passed since last update.

Jupyter Notebookで、なぜかC#でHelloWorldをコンパイルして実行してみる(外部コマンド実行)

Posted at

概要

このエントリでは、Jupyter Notebookの上で、なぜかC#でHelloWorld.cs的なプログラムをコンパイルし、実行してみることを行います。

要は、外部コマンドとしてコンパイラを実行をしているだけです。

前提

  • 想定読者は、物好きな方です。
  • 実用性は目的としていません。
  • OSは、Windows 10を利用しました。(コンパイラもOS導入後(Vista以降)に入っているcsc.exeでよく、本エントリの範囲ではVisual Studioを入れる必要はありません。)

準備

Jupyter Notebook


まずはJupyter Notebookを動かせるようにしましょう。

```python

2018年11月時点では、本家サイト「http://jupyter.org/install」において、AnacondaでのPython関連のインストールが推奨されています。
Pythonのパッケージマネージャにはお好みの流派があるとは思いますが、本エントリでは、Jupyter Notebookおすすめの方式に従います。

Anacondaのサイト(https://www.anaconda.com/download/#download)より、Windowsの64bit版のインストーラをダウンロードし、導入します。
(本エントリ執筆時点では、Anaconda3-5.3.1-Windows-x86_64.exe)
```

ソースを書く

動かしたいのは、よくあるHelloWorldです。

using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine("Hello World!");
        }
    }
}

これをペタッとNotebookのCellに貼ります。

jn-cs-helloworld.png

Cellの先頭に「%%writefile HelloWorld.cs」というJupyter Notebookにおいて「指定したファイル名でCellの内容をファイルに書き出す」命令を書いて、Runします。

ここまでで、Jupyter Notebookのデフォルトのファイル保存先(Anacondaで不通に入れてスタートメニューから動かしているときは、ホームディレクトリ)に、HelloWorld.csが出力されています。エクスプローラなどから確認できます。

コンパイル

ソース一つをコンパイルするだけなので、ビルドファイルも作らず、csc.exeを使います。

!!c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /w:4 HelloWorld.cs

このCellをRunすると、前述と同じ場所に「HelloWorld.exe」が出力されています。

実行

これも、外部コマンド実行を使います。

!!HelloWorld.exe

CellでRunすると、HelloWorld.exeが実行され、結果をCellで確認できます。

jn-exec.png

出力を使う

実行しっぱなしもつまらないので、出力結果をほかのCellで使ってみます。

Cellで、変数aに「%%system」で実行した結果を格納し、次のCellで表示させてみます。

a=%%system HelloWorld.exe

jn-capture-output.png

できましたね。

まとめ

このエントリでは、Jupyter Notebookの外部コマンド実行機能を用いて、C#のコンパイラを動かしてみました。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0