概要

このエントリでは、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#のコンパイラを動かしてみました。

广告
将在 10 秒后关闭
bannerAds