7
4

More than 1 year has passed since last update.

Google Colaboratoryで実行できる主な言語と環境構築方法まとめ

Posted at

こんにちは。うっかりじゅうべえ(@u-10bei)と申します。
Qiitaには、様々なコードがアップされています。
「これ、ちょっと試してみたい」と思っても、専門外の言語だと環境構築するのが面倒だとつい思ってしまいます。
そこで、Google Colaboratoryで実行できる言語とその方法についてまとめてみました。


前提条件

TIOBE Index2023年3月版でランキング上位10位に入っている言語を対象に、試してみることにします。


第1位 Python

これについては、そもそもリンク先で使い方が詳しく掲載しているので説明不要かと思います。
ただし、2023年3月時点では、Python3系しか実行できないようです。


無理やりPython2系を実行したいとき

まず、Colabの裏で何のOSが動いているか確認します。

コマンド
!lsb_release -a
実行結果
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.5 LTS
Release:	20.04
Codename:	focal

今回(2023年3月15日実行)は、Ubuntu20.04が動いているようです。
ならば、普通にaptでインストールできるはず。

コマンド
!apt -y install python2

でインストールする事ができました。
ちなみにバージョン確認してみると、

コマンド
!python2 --version
実行結果
Python 2.7.18

と実行できるようになってます。


コードの書き方

コード
%%python2
print 1+2*3-4/5
実行結果
7

のように、セル内でマジックコマンド%%python2を最初に宣言してあげると実行できます。
参考:マジックコマンドの使い方


第2位 C 、第4位 C++

@nsd24さんの投稿 1を参考に試してみました。


ツールの導入

コマンド
!gcc --version
!g++ --version

で確認すると、

実行結果
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

と実行できるようになってます。そこで、

コマンド
!apt install build-essential

でツールを導入します。


ファイルの作成とコンパイル

ファイルの作成は、マジックコマンド%%writefileを使います。

Cのコード
%%writefile hello.c
#include<stdio.h>
int main(void)
{
    printf("Hello World!\n");

    return 0;
}
C++のコード
%%writefile hello.cpp
#include <iostream>

int main()
{
    std::cout << "Hello World!!!" << std::endl;

    return 0;
}

C言語はコンパイラ言語なので、コンパイルします。

コマンド
!gcc hello.c -o hello
!g++ hello.cpp -o hello2

実行

コマンド
!./hello
!./hello2

とすると、

実行結果
Hello World!
Hello World!!!

と返ってきます。


第3位 JAVA

@ryomeさんの投稿 2を参考に試してみました。


実行環境の確認

コマンド
!java -version

で確認すると、

実行結果
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1, mixed mode, sharing)

とすでに実行環境はあるようです。


ファイルの作成とコンパイル

Cの時と同様、マジックコマンド%%writefileでファイルを作成します。

コード
%%writefile Hello.java
public class Hello{
   public static void main(String[] args){
     System.out.println("Hello World!!");
   }
}

JAVAもコンパイラ言語なので、コンパイルします。

コマンド
!javac Hello.java

実行

コマンド
!java Hello

とすると、

実行結果
Hello World!!

と返ってきます。


第5位 C#、第6位 VB

Microsoftの公式ページ3を参考にインストールしてみました。


.NET環境

Microsoftパッケージリポジトリの追加

コマンド
!wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
!dpkg -i packages-microsoft-prod.deb
!rm packages-microsoft-prod.deb

SDKのインストール

コマンド
sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-7.0

念のため、バージョン確認してみます。

コマンド
!dotnet --version
実行結果
7.0.202

C#

ここからは、Microsoftのチュートリアル4を参考に試してみました。

テンプレートを利用してアプリを作成

コマンド
%mkdir HelloWorld
%cd HelloWorld
!dotnet new console --framework net7.0

ファイルを作成

コード
%%writefile Program.cs
Console.WriteLine("Hello, World.");

実行

コマンド
!dotnet run
実行結果
Hello, World.

どうやら、ubuntuで.netも使えるようです。


VB

こちらは、@yajuさんの投稿5を参考に試してみました。

テンプレートを利用してアプリを作成

コマンド
%mkdir HelloWorld
%cd HelloWorld
!dotnet new console --language vb --framework net7.0

ここで、--languageを使って言語を指定すればVB用になります。

ファイルを作成

コード
%%writefile Program.vb
Imports System

Module Program
    Sub Main(args As String())
        Console.WriteLine("Hello VBWorld!")
    End Sub
End Module

実行

コマンド
!dotnet run
実行結果
Hello VBWorld!

第7位 javascript

donguriさんのnote 6を参考に試してみました。


こちらは、すでに環境が構築されているので、マジックコマンド%%javascriptだけで実行できます。ただし、実行結果ウィンドウへの出力に一工夫必要です。

コード
%%javascript
document.querySelector("#output-area").appendChild(
  document.createTextNode("Hello World.."));

で確認すると、

実行結果
Hello World..

が返ってきます。


第8位 SQL

@_jintaさんの投稿 7を参考に試してみました。


今回は、JupySQLとDuckDBを導入することにします。エクステンションを読み込むことで、マジックコマンド%sqlが有効になります。

コマンド
!pip install jupysql duckdb-engine
# エクステンションを読み込む
%load_ext sql

次に、DuckDBに接続します。

コマンド
# DuckDBのインメモリのDBに接続する
%sql duckdb://

DuckDBは、csvに対してSQLを発行できるようなので、colabのサンプルデータで試してみます。

SQL
%cd ./sample_data
%%sql
SELECT
  *
FROM
  mnist_train_small.csv
LIMIT 3;
実行結果(一部)
*  duckdb://
Done.
column000	column001	column002	...	column784
6	0	0	...	0
5	0	0	...	0
7	0	0	...	0

第9位 PHP

コマンド
!apt install -y php

でPHPをインストールします。
ちなみにバージョン確認してみると、

コマンド
!php -version
実行結果
PHP 7.4.3-4ubuntu2.18 (cli) (built: Feb 23 2023 12:43:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3-4ubuntu2.18, Copyright (c), by Zend Technologies

と実行できるようになってます。
構文の確認程度なら、コマンドラインで大丈夫なので試してみます。

コマンド
!php -r 'echo "hello world!?\n";'
実行結果
hello world!?

と、確認できました。


第10位 GO

コマンド
!apt install -y golang

でGOをインストールします。
ちなみにバージョン確認してみると、

コマンド
!go version
実行結果
go version go1.13.8 linux/amd64

と少々古いバージョンですが、実行できるようになってます。
GOに関しては全くの素人なので、ここからは公式のチュートリアル8に従って作業してみます。


Goソースコード用にhelloディレクトリを作成

コマンド
%mkdir hello
%cd hello

コードの依存関係の追跡を有効にする 

コマンド
!go mod init example/hello
実行結果
go: creating new go.mod: module example/hello

ファイル作成

コード
%%writefile hello.go
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!!?")
}

実行

コマンド
!go run hello.go
実行結果
Hello, World!!?

で無事実行が確認できました。


おわりに

基本的に、ubuntuに導入できる言語であれば、実行可能だと理解しました。


参考にしたサイト

  1. ubuntuでC, C++の開発環境をインストールしてHelloWorldしよう!

  2. 【最新】UbuntuでJavaの環境を構築する方法

  3. Ubuntu 20.04 に .NET SDK または .NET ランタイムをインストールする

  4. チュートリアル: Visual Studio Code を使用して .NET コンソール アプリケーションを作成する

  5. Windows Subsystem for Linuxでの .NET Core を使用したVisual Basic のHello World アプリケーションの構築

  6. Google ColabでJavaScript!

  7. 【2023年版】Google ColabでSQLを使う【DuckDB, JupySQL】

  8. Tutorial: Get started with Go

7
4
0

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
7
4