トップページ > プログラム > 2014年06月30日 > 2Uifxpzh

書き込み順位&時間帯一覧

4 位/233 ID中時間01234567891011121314151617181920212223Total
書き込み数0210000000100002000000129



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Swift part2
TypeScript(MS) VS Swift(Apple)

書き込みレス一覧

Swift part2
281 :デフォルトの名無しさん[sage]:2014/06/30(月) 01:06:27.05 ID:2Uifxpzh
>>280 Google developer tools and APIs for iOS

ふ〜ん、この為にJava to Object-Cなんて作ってたのか。
この流れだと、Java to Swiftも出てきそうだな。
iOSユーザを取り込みたいんだろうな。
TypeScript(MS) VS Swift(Apple)
120 :デフォルトの名無しさん[sage]:2014/06/30(月) 01:35:18.75 ID:2Uifxpzh
>>119 Playgrounds はXcodeのデバッグウインドーで動くもの。 リアルタイムデバッガと言って良いだろう。

LLDBが動くのは、ターミナル上でSwiftインタプリタを動かしたとき。 インタプリタ上のデバッグコマンドはLLDBコマンド。
実際は、Xcodeがインタプリタの実権を握っているのかもしれないが動作を制御しているのはLLDB
インタプリタを動かして、 :helpを打てばLLDBのコマンドリストが出てくる。 完全なインタプリタとは言い切れないがほぼリアルタイムにコンパイル実行しているから使い勝手は全くインタプリタ。
途中でLLDBコマンドを使ってPythonを呼び出したりもできる。

1> :help

The Swift REPL (Read-Eval-Print-Loop) acts like an interpreter. Valid statements, expressions, and declarations are
immediately compiled and executed.

The complete set of LLDB debugging commands are also available

Swiftのインタプリタモードが楽しい
http://qiita.com/dll7/items/206d5bf0cb72942b3681

1> let t = 10
t: Int = 10
2> let t = 1.0
t: Double = 1
3> let t = "a"
t: String = "a"
4> t = "hello"
5> println(t)
hello
TypeScript(MS) VS Swift(Apple)
121 :デフォルトの名無しさん[sage]:2014/06/30(月) 02:18:56.74 ID:2Uifxpzh
>>120 PlaygroundもLLDBが動いてる。
TypeScript(MS) VS Swift(Apple)
123 :デフォルトの名無しさん[sage]:2014/06/30(月) 10:53:35.14 ID:2Uifxpzh
>>122 だったらどうなんだ?

そもそもインタプリタの定義なんてこんなもの
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%97%E3%83%AA%E3%82%BF
1.ソースコードを直接実行する。
2.ソースコードを何らかの効率的な中間表現に変換し、それを即座に実行する。
3.システムの一部であるコンパイラが生成し出力した、コンパイル済みの中間表現を実行する[1]。
 ソースプログラムはマシンに依存しない中間的なコードに事前にコンパイルされ、実行時にリンクされ、インタプリタで実行される

Javaなんかよりよほどインタプリタの王道に近い動きをするぞ。
Perlなんかよりも使いやすい。

REPL
https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop 
この定義では、LISPもコマンドラインスクリプトもREPLに入る。
TypeScript(MS) VS Swift(Apple)
127 :デフォルトの名無しさん[sage]:2014/06/30(月) 15:00:27.03 ID:2Uifxpzh
>>123 のWikの中の説明では中間コードを取らないインタプリタも有る。

>バリエーション
>動的コンパイルを使っているインタプリタは、内部で実機の機械語に変換し実行する。i

Swift/REPL はこれにあたる。

Using Swift As General Purpose Scripting Language
http://www.strathweb.com/2014/06/using-swift-general-purpose-scripting-language/

-emit-assembly Emit assembly file(s) (-S)
-emit-bc      Emit LLVM BC file(s)
-emit-executable Emit a linked executable
-emit-ir       Emit LLVM IR file(s)

ここにあるようにアセンブラから、LLVM IRまで様々なファイルを作り出せる。
LLVM IRが動かない訳が無い。(REPLモードの時にIRが使えるかどうかは知らないが)

呼び方なんか何でも良い。 汎用スクリプト言語として使えると言う事実。 これが全て、 
You can use Swift as general purpose scripting language for all kinds of OS tasks or any automation scripts;
TypeScript(MS) VS Swift(Apple)
128 :デフォルトの名無しさん[sage]:2014/06/30(月) 15:05:01.81 ID:2Uifxpzh
>>127 言い忘れた。 コンパイラは、MacOS上で動かしていてもコンパイル結果をターゲットのARMとしての出力が出来るのは当然。
だからと言ってARMの機械語で動かしている訳でない事も当然。

この意味が解るか? 機械語を実行している訳じゃないんだよ。
TypeScript(MS) VS Swift(Apple)
135 :デフォルトの名無しさん[sage]:2014/06/30(月) 22:49:24.44 ID:2Uifxpzh
>>132 形容詞と名詞の違い。
TypeScript(MS) VS Swift(Apple)
137 :デフォルトの名無しさん[sage]:2014/06/30(月) 23:36:17.56 ID:2Uifxpzh
驚いたな。 こんな質問が飛び出すとは。
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E8%A8%80%E8%AA%9E
アセンブラは、アセンブリ言語を機械語に変換するプログラムソフトの事。 コンパイラに対応。
アセンブリ言語の意味で「アセンブラ」または「アセンブラ言語」(Assembler Language)と呼ぶ場合も多い
assembler
TypeScript(MS) VS Swift(Apple)
140 :デフォルトの名無しさん[sage]:2014/06/30(月) 23:45:39.62 ID:2Uifxpzh
>>138 いや最近の安い辞書に assembler と言う訳が載っていないことに驚いたんだよ。
昔はassemblerの方が一般的だったのに。
質問が出てきた意味が解った。 assemblyの語源はassembler 。

少なくともプログラムする人間は、コンパイラ、アセンブラと言う言葉位は知っておいてほしいな。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。