質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

4547閲覧

オンライン実行環境ってどうやってつくってるのでしょうか?

bouyomisan

総合スコア87

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2017/04/11 14:21

paiza や progate cloud9 などはオンライン上で様々な言語を実行できるようになってますが、あれはどのような言語でどのような仕組みでつくってるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

キーワードとなるのは

  • コンテナ仮想環境
  • 構成管理システム
  • コンテナ仮想環境にアスセスするAPI

でしょうか。

フロントエンドは確かにJavaScript製のIDEではありますが、そのバックグラウンドでは各ユーザーごとの「専用環境」を構築した「コンテナ仮想環境」というものが作られているものだと思います。

ですので、もし「ちょっと自分も似たようなの作ってみたいのだよなあ」
とお考えでしたら、DockerやLXD、AnsibleやChefなどの学習も必要になってくるかと思います。

また、更にコンテナ仮想環境を作るためのAPIの作成等の知識も必要になってくるので、フロントエンドに限らない知識も必要になってきます。

投稿2017/04/11 14:28

manzyun

総合スコア2244

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bouyomisan

2017/04/12 08:34

回答ありがとうございます。 いろいろしらべてみると骨のある作業のようですね(-_-;) でも頑張ってみたいと思います。 ただこのAPIとは json 形式の簡単なファイルという認識でよろしいでしょうか?ruby をやっているときも api というのが出てきたのですが。。 それと手元にある本に vagrant と virtual box で仮想環境をつくるというのに取り組んでから、そのコンテナ仮想環境というのに移ろうかと思ってるのですが、これは余計な回り道でしょうか?
manzyun

2017/04/12 19:42

> ただこのAPIとは json 形式の簡単なファイルという認識でよろしいでしょうか?ruby をやっているときも api というのが出てきたのですが。。 そうですね。APIというのはAplication Programming Interfaceの略で、他のプログラムが受け取る側の定められたプロトコル・フォーマットで受信することによって、そのとおりに動きます。 参考資料: APIとは|アプリケーションプログラミングインターフェース|Application Programming Interface : 意味/定義 - IT用語辞典 http://e-words.jp/w/API.html その定められたプロトコル・フォーマットを決めるのは開発者自身ではありますが、大抵はHTTPプロトコルでjson形式で良いでしょう。 例えば、 「PHP開発環境を3台作りたい」というサーバーを作りたい場合、HTTPのPUTメソッドで、サーバー構成をjson形式で送ると、サーバー上にコンテナ環境が作られるように実装すれば良いのではないかなあと。 その辺りはSinatraなどのWebフレームワークを利用して、 「このアドレスにこういう情報が来たらコレする」 とプログラミングすると良いと思います。 > それと手元にある本に vagrant と virtual box で仮想環境をつくるというのに取り組んでから、そのコンテナ仮想環境というのに移ろうかと思ってるのですが、これは余計な回り道でしょうか? 手元にLinux環境があるなら、ちょっと回り道かもしれません。その場合は、そのLinux環境にDockerなりLXDなどをインストールして、実際に手を動かしていただくと良いかもしれません。 文脈から察するにコンテナ仮想環境とVirtual box等のハイパーバイザー型仮想環境の違いはなんとなく理解できているのかなと思います。 LXDに関しては時間制限はありますが、オンライン上で触ることのできる環境がありますので、 「こーんな感じなのか」 というのを感じ取れるかもしれません。 Linux Containers - LXD - オンラインでの試用 https://linuxcontainers.org/ja/lxd/try-it/ # 余談 Zuishinさんの「サーバー上に各種実行環境を構築して、フロントエンドからバックエンドにCGIとかでソースコードを送って実行させるだけ。」というアプローチも確かにあります。というより、そっちの方が簡単です(笑) どちらのアプローチを取るかは、どんなものを作りたいかによりますね。 codeanywhereやCloud9の様な「Web上で動くIDE(統合開発環境)を作る」と言う場合は自分のアプローチ。書いたコードが正しく動くかどうか確認するだけであればZuishinさんのアプローチのほうが適してると思います。 理由まで書くとどんどん長くなってしまうので、この辺で。
bouyomisan

2017/04/14 13:35

API についてはなんとなくわかってきました。 >その辺りはSinatraなどのWebフレームワークを利用して、 >「このアドレスにこういう情報が来たらコレする」 >とプログラミングすると良いと思います。 ぼくはrails なのですがたしかに post メソッドがきたときユーザー一覧の json で返すみたいなことをした記憶があります。 lxd というのも調べてみて、教えてくださったサイトで触ってみました。さっぱりわかりませんでしたが、感じはつかめました(-_-;) > どちらのアプローチを取るかは、どんなものを作りたいかによりますね。 ぼくは cloud9 のようなアプリを作ってみたいので、manzyun さんの教えてくださった方法が適しているようです。ありがとうございました。 最後に聞きたいのですが個人レベルで cloud9 のようなのを作りたいのですが、そういうのってサーバー室のようなものを構える必要があるのですかね??
manzyun

2017/04/14 20:53

> 最後に聞きたいのですが個人レベルで cloud9 のようなのを作りたいのですが、そういうのってサーバー室のようなものを構える必要があるのですかね?? AmazonやGoogle、さくらインターネットやGMO等の企業のコンピューターリソースを容易に借りれる現代であれば、最初からサーバー室(自宅ラックともいう)を構える必要は無いのではないかと思います。まずはVPSでリリースしたら良いかと思います。 かといってサービスを利用するユーザーがどんなプログラムを書くか分かりませんので(例えば;CPUリソースをかなり食べるプログラムを書いたりとか、サーバーを乗っ取るプログラムを書いたり……)そういうところで「制限をつけつつも、すぐに環境が構築できる」という面で、個人的にはコンテナ仮想環境の学習をオススメいたします。 # 余談 大企業のコンピューターのリソースを借りれるという技術も実は仮想環境構築技術のおかげだったりしまして、仮想環境の上に仮想環境があって……というのは普通になりましたね。 このコメントを書いている現在(2017-04-15)、ちょうどteratailとさくらインターネットのコラボレーションイベントでクラウドマスター認定試験というものをやっております。 そこのチュートリアルをやってみると「セキュリティ面で理想の仮想環境構築」も学べると思いますので、ちょっとやってみると良いのではないかと思います。
bouyomisan

2017/04/16 09:57

なるほど、サーバー室などつくらなくてもサービスを利用することができるのですね。 >「制限をつけつつも、すぐに環境が構築できる」という面で、個人的にはコ >ンテナ仮想環境の学習をオススメいたします。 わかりました。コンテナ仮想環境のほうを勉強してみます! >ちょうどteratailとさくらインターネットのコラボレーションイベントでクラウドマスター認定試験というものをやっております。 そのようですね。いいタイミングなのでぜひやってみます。 ありがとうございます!
guest

0

実際どうやってるのかは聞いてみないとわかりませんが、入力されたソースを普通にコンパイラに処理させて実行結果を出力してもできますね。

投稿2017/04/11 14:30

Zuishin

総合スコア28662

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問