BYODでC

はじめに

 BYOD (Bring Your Own Device)またはデスクトップの自分用PCを使って,授業や自習でCプログラミングをするときに,おすすめの方法を4つ紹介します.

 4つというのは,「Windows上でLinux」「統合開発環境」「USBメモリ」「Webサービス」です.概要とソフトウェアなどの名称,メリット・デメリットを記します.なお,各ソフトウェアの最新バージョンや,インストールして使用できるようになるまでの手順については,記載していません.リンクのほか,検索を通じてお確かめください.

 いくつか,スクリーンショットの縮小画像を貼り付けています.画像をクリック(タップ)すると,100%サイズの画像を見ることができます.

方法1: Windows上でLinux

 Windows OSの中に,Linuxの実行環境をインストールし,両方を動かします.

 ソフトウェアとしては,Windows Subsystem for Linux (WSL)が最も良い候補となります.WSLはWindows 10の64ビット版で,かつバージョン1709以降であれば利用できます(バージョンについては,2018年以降に本体を購入しているか,適切にWindows Updateを行っていれば,大丈夫です).他のソフトウェアにはVirtualBoxがあります.VirtualBoxを使う場合には,Windows OSはホストOS,その中で動かすLinuxはゲストOSと呼ばれます.

 OS間のファイル共有の仕組みも備わっています.Windowsのテキストエディタでソースファイルを編集し,そのディレクトリにWSLまたはゲストOSのシェルを移動させて,コンパイル・実行もできます.このやり方を使えば,課題(プログラムファイル)の提出には,Windows環境でのブラウザなどを使用することになり便利です.

 その一方で,1台のPCにで,2つのOSを管理(ソフトウェアアップデートなど)することが手間となります.メモリやディスクも,他の方法に比べて多く必要とします.LinuxをインストールしただけではCのコンパイルができず,内部で別にソフトウェアパッケージを入れる必要もあります(例えばUbuntuでは,端末上で「sudo apt update」「sudo apt install build-essential」という2つのコマンドを実行します).

 Cプログラミングに関しては,標準関数だけでなく,POSIX準拠の関数も使用でき(プロセス間通信やサーバのビルド・起動も行えます),サードパーティのライブラリを入れて使うことも可能です.Windows OSの利用を中心としながら,Linuxを学ぶのには最適な方法です.

WSL 画面例

方法2: 統合開発環境

 統合開発環境はIDE (Integrated Development Environment)とも書かれます.ソースファイルの編集,コンパイル,デバッガの利用など,従来だとばらばらだったものを,GUIによる一つの操作環境から使用できるようにしたものです.効率よくプログラムを書いて実行するための機能が多数,提供されています.

 Windows用のソフトウェアとしては,Visual StudioとEclipseに,それぞれ根強い人気があります(Visual Studio Codeは,Visual Studioと別物です.これはソースコードエディタであり,コンパイル機能は含まれていません).なおEclipseはJavaのプログラミングに用いられてきましたが,プラグイン導入によりCも可能です.

 単一のプログラムであっても,プロジェクトとして管理するほか,コマンドライン(端末,シェル)を使用しないためコマンドライン引数や標準入出力の扱いをソフトウェアごとに学ぶことになる点には,注意が必要です.

Eclipse 画面例

Visual Studio 画面例

方法3: USBメモリ

 USBメモリにファイルを入れておいて,それをPCに差し込み使用します.

 具体的に何を入れるかですが,LinuxなどOS全体を格納し,起動時にPC内蔵のWindowsではなく,外付けUSBメモリを選択して使うというのは,Live USBと呼ばれます.格納するためのソフトウェアにはRufus,Universal USB Installer,UNetbootinなどがあります.

 全く別の方式として,USBメモリに,Windows上で実行できる,コマンドラインのソフトウェアを格納するというのもあり,gnupackがよく整備されています.

 複製が容易なのに加えて,ホスト環境を汚さない(Windows OS上のファイルを書き換えない)というメリットがあります.ただし,USBメモリを購入し保持する必要がありますし,稼働中は本体から抜いてはいけません.Live USBでLinuxの起動中はWindowsのソフトウェアが使用できないこと,gnupackは「Linuxもどき」であることは,自学自習の観点ではマイナス要素となります.

gnupack 画面例

方法4: Webサービス

 Webサービスを使う場合,ブラウザ上でプログラムを書きます.ボタンを押せばコンパイル・実行をしてくれます.統合開発環境と同じように,エラー箇所を教えてくれるものもあります.

 国内外でさまざまなサービス(Webサイト)が公開されていますが,paiza.IOが最もお勧めです.インストール不要で,URLだけ知っていれば使えます.

 統合開発環境と同じように,コマンドラインは利用しません.そのほか,コンパイル・実行を「外部に委ねる」ことによる制約にも,注意をしないといけません.paiza.IOでは1回の実行が2秒以内という制約があり,無限ループや,そうでなくても処理に時間がかかるときには,期待する出力が得られないということになります.

paiza.IO 画面例

謝辞

 Windows OSを使用してCプログラムのコンパイル・実行をする方法について,2018年度の村川研究室前期ゼミにて学生が手分けして調査・試用してくれました.松本陽平,村端宏介,小高真太郎,東健太,薮北斗の名前を挙げ,ここに感謝します.

更新履歴

  • 2019年2月19日
    • EclipseとVisual Studioの画面例を追加しました.XHTMLの構文として不適切だった箇所を修正しました.
  • 2019年1月24日
    • リリースしました.