TypeScript(MS) VS Swift(Apple)

■ このスレッドは過去ログ倉庫に格納されています
2014/06/03(火) 10:20:03.13ID:Tlzh3MoL
まあ、どちらもタイプセーフJavaScriptという
似たような言語なんだから仲良くしろや。
2014/06/05(木) 21:30:16.56ID:23MIBYyX
>>38 多分動的言語としての発展性を持った言語だから普及が早いと思う。
デバッグ環境では動的言語としてインタプリタが動くから。

教育に最適
2014/06/05(木) 21:33:37.68ID:KZps3rc8
>>39
ある程度メジャーな言語なら今時そんなもんできない言語の方が珍しいぞ
EclipseのJavaとかVS上のC#/VBあたりですらできるというのに
2014/06/05(木) 21:39:02.52ID:W5+wneCa
C#なんかはRoslynで本格的にスクリプト言語として使えるようになりそう
2014/06/05(木) 21:44:51.28ID:23MIBYyX
>>40 それは単にデバッガが動くだけでインタプリタとは言えない気がする。
2014/06/05(木) 21:48:33.40ID:KZps3rc8
>>42
REPLは当然できるしデバッグ実行中にコード書き換えたりとか普通にできるよ
今更特に珍しいことでもないので大して宣伝したりしないけど
2014/06/05(木) 21:48:48.87ID:W5+wneCa
インタプリタが動くって、デバッグ中に対話モードが提供されるってことじゃないの?
2014/06/05(木) 21:51:49.64ID:KZps3rc8
>>44
それはイミディエイトウィンドウという名称で20年前から広く普及している機能だ
2014/06/05(木) 22:10:36.55ID:lzzD+Ao8
ランタイムがobj-cなら今までの通り、ネイティブコード吐いても中身は動的抽象化済みって構造でしょ
インタプリタみたいに使えてるのは、その都度ワンライナー分のバイナリ吐いて実行してるとしてもランタイムだけ共有すれば済むから軽く済むからじゃないのかしら

固定のVMシステムなしにここまでやれるというのはなんか不安になるレベルだけど、LLVMの恩恵とかフル活用してる感じだし収穫期の技術なんだろな
2014/06/06(金) 20:53:22.98ID:uAvQfS8F
>>30
>世界はもう、javascriptの一人勝ちだよ

10年前のお前らに言ってやったら鼻で笑われただろうな
2014/06/06(金) 21:01:17.09ID:Xr84RnA8
今言っても鼻で笑われるけどね
2014/06/06(金) 22:41:13.01ID:vDxc/t5t
10年前からajaxは流行ってたし、MicrosoftはJScript以外は載せなかった
先見性はあるものの、市場での主導権を握れなかった哀れな連中さ
2014/06/06(金) 22:50:19.27ID:Pmgky8TD
独禁法でやられただけだよね。ドッキンドッキンされなかったら違ってたと思うよ。
2014/06/06(金) 23:03:52.33ID:grZzRNx9
10年前にAjaxなんて言葉あったっけ
2014/06/06(金) 23:13:25.32ID:R+Edbt39
1947年発売だよ
2014/06/06(金) 23:31:09.27ID:qsDOAuAz
洗剤の方のajaxのことかしら
2014/06/07(土) 00:19:43.55ID:n8epCVok
マジかよ
そんな洗剤あったのかよ
逆にその洗剤と掛けた可能性はあるな
2014/06/07(土) 00:28:08.45ID:jgc6Krm+
コナミの音楽のいい縦シューと
オランダのサッカーチームが混ざってたけど
いまはKPOPもいるのかよ

TypeScriptもLLVMに乗せるようになったらおもろいな
2014/06/07(土) 02:17:25.67ID:+6c+B5Zd
jQuery的な意味でのAJAXは10年前くらいかな
2014/06/07(土) 02:22:54.93ID:Rlb4AoSA
へえ、最近はjQuery的とかで括られるんだ
……
2014/06/07(土) 02:26:43.57ID:+6c+B5Zd
10年前指して言ったつもりなんだけど
2014/06/07(土) 03:04:31.92ID:Rlb4AoSA
や、単にGoogleMapで評判になった非同期処理系にajaxって名前がついたのはjQueryより前だよって話です
今か前かとかじゃなく違和感あんのよ

JavaScript的な意味、とか言ってくれてればなんも引っかからなかったと思う、くらいの話

そもそもajaxと聞いて日本で洗剤と混同する層もいないだろうし、なんか嫌な言いがかりだったと思うわ
すまんです
60デフォルトの名無しさん
垢版 |
2014/06/07(土) 06:56:33.45ID:2ccOrqUk
ajaxは2005年くらいからのイメージ
2014/06/14(土) 15:56:47.95ID:LvPH/m/s
Swiftの対戦相手はC#だろ
2014/06/14(土) 16:56:14.50ID:2ps+5Cwk
Swiftは良い所取りをしているが、他の言語とも親和性が良いと思う。解りやすい。
LLVMが、普及し始めてるから個別の言語がなんであれ強調出来そうな環境が整いつつある。

言語の強い部分はそれで書く。各々を一緒に使えれば良いんじゃ無い?
2014/06/14(土) 19:24:32.09ID:gvIqw1Hb
>>62
LLVMの設計者が、効率的に動く様に作ったのがSwiftだからなぁ。
2014/06/14(土) 19:26:26.18ID:huxF3N6M
.NETもそうだけど、言語間の互換性をとる時代だな
それにたいしてJavaといったら
2014/06/14(土) 20:07:14.07ID:LJT0GoOm
LLVMでネイティブ吐くあたり、仮想マシンが無いってのが面白いね
.Netの巨大戦艦っぷりも萌えるし一概にどっちがいいでもないけど。

MSはMSでarmスマホ・タブとIntel winで同一アプリを動作させるつもりのようだし
あ、でもpNaClみたいな実装すればAppleもそういうアプローチを取れなくもないのかな

こういう夢を最初に見せてくれたのがJavaだったはずなのに、なんか後追いムードだな

>>64
JavaVM上で動く言語実装自体はいろいろあるじゃない
ネイティブ連携はめんどいけど
2014/06/14(土) 20:17:12.78ID:huxF3N6M
Javaはすぐ訴訟起こすイメージだな
このままだとAndroidも別言語に切り替えになりそうな気さえする
2014/06/14(土) 21:55:49.56ID:gViTkWWV
JVMは仕様が貧弱で、Javaと、JVMを前提にして設計された言語と、
エミュレーション的な動作のオーバーヘッドが問題にならない元々遅いスクリプト以外を動かすのには向かない
対して.NETは最初から共通言語基盤として設計されてるからね
2014/06/15(日) 03:19:25.43ID:Qhn/buVu
>>66 そのつもりだろ。 だからGDKなんてJava以外で開発して使うツールその物。
J2C J2ObjC なんてのも出してる。 JavaからC++やObjective-Cに変換する。

Java自体のスピードの限界も有るし。
2014/06/19(木) 15:56:47.41ID:OjyeQHX2
今、androidの公式言語をdartにすれば、Java+Oracleを潰せる
2014/06/19(木) 16:09:20.93ID:gduOxxnf
がんがれ
2014/06/19(木) 19:38:11.88ID:6q/EJbCK
Googleはどっかのりんごちゃんと違ってプログラミング言語作りのセンス無いの自覚してるからな
言語作るのに関してはMSは飛び抜けて優秀
2014/06/19(木) 20:18:07.97ID:bddQu7Cz
自覚してんのにdartとかgoとか出してんのかよ
2014/06/19(木) 21:16:10.40ID:6q/EJbCK
そういうのは出してるだけで、玩具はあくまで玩具と理解してるよ
Googleはメディアを掌握してるからちょっとしたことでも話題になるけどね
Dartなんて未だにChromeに搭載されてないし、されるようになる気配もなく
特にやる気もないみたい
2014/06/20(金) 14:55:02.18ID:x5z8sn97
dartのベンチ結果は既にjavaと同程度だよ。中国なんて、golangの普及がすごいからね
特にやる気が無さそうに見えるのは、最後に自分たちのプロダクトが成功することを信じて疑わない王者の余裕だよ
2014/06/20(金) 15:58:57.41ID:ukZQYad7
dartはjavascriptへのコンパイラがあるからブラウザへの組み込みをがんばる必要ないでしょ。
コンテンツ作る側も他ブラウザを考えたらJavascriptでも作らなきゃならないのは変わらないし、その辺ちゃんとわかってる人は無理にブラウザに入れようとは思わないよ。
そんな事考えるのはswiftがJavascriptも置き換えて云々とかいうApple信者ぐらい。
2014/06/20(金) 20:21:20.60ID:M/JwZqVI
Dartは当初からブラウザに組み込まれるのが売りだったし
JSに代わって中間言語として使われるはずだったからこそ
あんなJavaモドキなガチガチ仕様にしたのにね
ただのAltJS止まりなら存在価値ゼロのJavaの出来損ない
2014/06/22(日) 00:29:13.65ID:fu9gwVHY
>>76
そんなガチガチかねぇ。
メソッドオーバーロード無いけどオペレータオーバーロードはありだし、オプショナル型だから変数の型宣言は省略できるし、
けっこうバランス取れたユルさだと思う。
2014/06/22(日) 01:02:59.67ID:41dfNV8s
ちょっと前から話題のDockerがgoで書かれてるんだよな
これで実績できればサーバー書いたりする言語として普及が進むかも
2014/06/22(日) 14:44:46.69ID:rQNdP6ot
比較対象はどう見てもgoだろ
2014/06/22(日) 15:01:35.97ID:JSmk+G44
// Go
type string String
func Tag( name String ) String {
 var tag String = "<" + name + "/>"
 return tag
}

// Swift
func Tag( name :String ) -> String {
 var tag :String = "<" + name + "/>"
 return tag
}

ソックリー、ソックリー!
2014/06/22(日) 17:35:57.18ID:mgZTcG6H
string を + で結合するスタイルはどうも好きになれない
2014/06/22(日) 18:04:29.98ID:rW+mKnZ0
var tag = "<\(name)>"

の方が汎用性が有り美しいかも。
いろんな書き方が出来るSwiftは洗練されてる。
多分Swiftではこの書き方がメインになるのでは? どんな型でも結合出来るし。
2014/06/22(日) 20:53:12.27ID:Cvja/8tc
>>82
現実には書式設定が必要な場合が多いのであんまり美しくなくなるんだよね
結局従来のprintf方式がスマート
2014/06/23(月) 00:26:21.67ID:k0C4cCbl
>>83 NSStringのformatは確かに美しくない。 println(NSString(format:"%5.2f", 1.2345)) //1.23
何か美しい演算子で表現できるようになると良いね。

例えば

var d = 1.234567
//operator infix ~> {}
@infix func ~> (left: Double, right: Int) -> String {
  if right == 0 {
    return "\(Int(left))"
  }
  var k = 1.0
  for i in 1..right+1 {
     k = 10.0 * k
  }
  let n = Double(Int(left*k)) / Double(k)
  return "\(n)"
}
println("\(d~>2)") //1.23
println("\(d~>1)") //1.2
println("\(d~>0)") //1

// 或は------------------
@infix func % (value:Double, format:String) -> String {
  return NSString(format:format, value)
}

println( d % "%5.2f") //1.23
println( d % "%5.1f") //1.2

//  よりは美しい
2014/06/23(月) 00:31:08.05ID:IjFKX6YY
フォーマットはセキュリティのリスクがあるからSwiftには入れてないんだ
フォーマットしたかったらNSFormatter使えって言ってたから、そういう仕様なんだよ
2014/06/23(月) 07:12:49.72ID:KA1AMTg4
多言語対応するなら全く役に立たないし
せいぜいデバッグに使う程度のおまけ機能ってこと
2014/06/23(月) 07:58:15.78ID:TmQ3uu+R
倍角文字がね
2014/06/23(月) 09:11:06.74ID:2Cm/+3gI
他言語化する時は結局Swift版のNSLocalizedStringを呼んでstringWithFormatに突っ込むんだろうな
89デフォルトの名無しさん
垢版 |
2014/06/27(金) 09:35:43.36ID:xawLBmcE
◎2chスレッド勢いランキングサイトリスト◎

★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi

※ 要タイトル検索
※ 2chブラウザ併用推奨
2014/06/28(土) 13:32:22.99ID:OVqhhiRq
Swiftって正規表現による置換は無いの?
Formatはそれで代用できるでしょ
2014/06/28(土) 15:22:27.04ID:I8uTErQI
FormatだけならFormatterを使えば済む話。
でも正規表現的な物もあった方が良いと思う。

話は変わるが、ターミナル上でSwiftをインタプリタとして動かして見るとちょっとした感動が有った。
これでJavascriptの代わりに使えれば言うこと無いんだが。
もちろん全ての環境で動かすことは難しいだろうから、MacOS iOS環境だけで良いけど。
iOSでターミナルを解放することも無いだろうから、WebKitの中だけでも良い。これは結構実現性が高いと踏んでいる。
2014/06/28(土) 16:03:57.22ID:eTuLXdkr
interpeter風実行はgoでもできなかったっけ?
2014/06/28(土) 17:57:36.41ID:zES9UvXE
>>91
Javascriptへのコンパイルを可能にしない限りWebサイトに使えることはないだろう
2014/06/28(土) 18:43:31.30ID:I8uTErQI
>>93 既にWebKitにLLVM が乗って、JavascriptのVMが動き始めてるの知ってる? みんな次のバージョンでサポートする。スピードが30%上がる。
iPhoneだとiOS8から。今ベータが動いてる。

swiftはLLVMのLLDBでインタプリタを実現してるから、Javascripが動く環境で動かすのは容易い話であり、WebKitの主導者のAppleが入れてしまえば多分抵抗なくみんな使い始める。
最初はプラグインか何かのオプションになるだろうが。
とは言っても、1〜2年はかかるだろう。
2014/06/28(土) 18:48:52.76ID:I8uTErQI
LLVMベースが何を意味するか解るか?
Javascript の中間コードとSwiftの中間コードは同じなんだから、JavascriptのVMが動くと言うことはSwiftのVMも動くと言う事。

標準採用されるまでに時間がかかるのは当然。
2014/06/28(土) 19:20:18.14ID:zES9UvXE
いや、別言語をAppleの手の中で動かせるのは当然わかる

それが他の環境、WindowsとかAndroidにも対応しないとはやらない
移植性のよさが利点のWebの分断は批判が大きいだろう
そのためにはJavascriptを中間コードから生成せねばならないが、そこでTypeScriptやCoffeeScriptと戦って勝てるのか

WebKitのシェアはblink移行で下がってるから、ハイブリットアプリで内部て使うとかがいいとこじゃない?
2014/06/28(土) 19:23:26.17ID:zES9UvXE
直接実行できるのだけが利点なら、VBScript、Dartがすでにあるけど、どれもまず聞かないという
2014/06/28(土) 20:08:05.04ID:SXG/e0pD
やろうと思えばそんなにかからんのじゃね
Emscriptenなんてのもあるし
2014/06/29(日) 04:35:38.07ID:oBe1BEgf
>>94
見たらアグレッシブな最適化の部分だけじゃないか。
js をパースして次が LLVM IR ならともかく、話が全然違う。
聞いたことないし GC どうすんのかとかあるし、なんかおかしいと思ったんだよ。LLVM が何かわかってない発言だ。
2014/06/29(日) 08:19:56.40ID:mYSKVn4w
>>99 どんな記事をみたのか知ら無いが、LLVM IR にコンパイルして実行するんだよ。そのIRを最適化する。
第4層最適化。GCは何らかの方法で実施している模様。

AppleがLLVM JITを使用してWebKitのJSエンジンをスピードアップ
http://www.infoq.com/jp/news/2014/05/safari-webkit-javascript-llvm?utm_reader=feedly

オリジナルの発表
https://www.webkit.org/blog/3362/introducing-the-webkit-ftl-jit/

http://www.webkit.org/blog-files/ftl-jit/ftl_pipeline.png
2014/06/29(日) 09:44:26.93ID:f8exIVV0
それ以前にSwiftがオープンになることはないでしょ
そんなことしたら「あえて」特に何も新しくない新しい言語を作った意味が無くなる
意味わかるでしょ?
2014/06/29(日) 10:01:59.85ID:OApS8+mw
オープンソースにしない限り、幅広い分野でっていうのは無理だな
Microsoftはオープンソース化が多くなってるのに、appleはどうなんだ
2014/06/29(日) 11:26:00.71ID:FVthjcnk
>>101
全然意味分からないのでもっと詳しく具体的に説明してください
2014/06/29(日) 12:19:42.92ID:mYSKVn4w
>>101 Objective-Cですらオープンソースにしてるのに、しない理由が解ら無い。

>>102 Apple は、言語系、Web系は殆どオープンソースだよ。
WebKitとLLVMはその要だろう。

早くオープンソースにしてLLVM実行環境だったら使えると言う状態に持って行って欲しい。

SwiftはLLVMと密接に結びついており、拡張性は高い。オープンソースにはまだなってい無いが、LLVMを軸に動いてる事は事実だし、Appleの判断次第。
使うか使わ無いかは使う側の判断。

C やObjCとも混在出来るし、LLVM IRからは既にJavascript やJavaをすら生成出来る。(一時しのぎにしかなら無いだろうが)
2014/06/29(日) 12:36:23.68ID:mYSKVn4w
TypeScriptは、確かに必要性は解るがあくまでもツール的な存在では無いだろうか。
例えば核の言語のプリプロセッサやライブラリ的な存在。
C にプリプロセッサ的に追加したObject-C の様に。
つまりなくても困ら無い。
TypeScriptがJavaScriptの拡張版と言ってもブラウザで直接実行出来無い限り本流にはなり得無い。

Swift はどうかと言うと、核の言語。 王道を歩むつもりの様だからオープンソースになり使う人が多くなれば普及も早いと思われる。
SwiftScriptが出来るかどうかは、単なる憶測の範囲。
2014/06/29(日) 13:35:06.34ID:OApS8+mw
>>105
オープンソースになっても、言語仕様的にほかより優れてるの?そうじゃないと他の環境までは、はやらない

所詮Appleの中の言語にとどまると思う

ブラウザの直接実行は、Microsoft,Apple,Google,Firefoxの4勢力が協力しない限り達成不能
そして、Web共通言語のjs以外で足並みを揃えるのは無理だし、Apple的にはほかの会社に自社言語の開発の中心に居座られたくない気がしそう

TypeScriptなんかがプリプロセッサなのはjavascriptによる過去の資源との互換性を保つためで、どの言語にもjsの置き換えを狙うのが無理そうだからだよ
2014/06/29(日) 13:39:07.70ID:tO69Jiz2
AltJSじゃだめな理由って何がある?
2014/06/29(日) 14:57:50.22ID:mYSKVn4w
>>107 そもそも、HTML内埋め込みインタラプト言語のJavaScript系と、オールマイティーなコンパイル言語系では用途が全く違う。

だから、TypeScript と Swift を対比すること自体に無理が有るけど、Swiftがインタプリタとしても動いたりスクリプトとしての可能性も匂わせてるからこのスレに上がったんだろう。

元々は全く違う用途。
2014/06/29(日) 15:02:09.40ID:OApS8+mw
>>108
スクリプトとして動きそうというだけならC#なんかもそのうち動きそうだけど
Roslynもできたし、IOSを含め他の環境でももう動いてる
2014/06/29(日) 15:16:22.91ID:mYSKVn4w
>>106 >言語仕様的にほかより優れてるの?

そんな事は言うまでも無い。
各種言語の良い所取りした言語だから、他の言語からも反対する意見は殆ど皆無。
特に今後のコンピュータ言語教育に果たす役割は大きいと思う。

多少癖が有りそうなのは、スピードを重視した仕様 (これは認められるだろう) とC や ObjCとの相互結合を考慮した点( 現実解 )
これらも何ら足かせには成ら無いだろう。 必要ならそれなりのライブラリが出来るだけ。

プリプロセッサを排除した分、言語仕様の中で自分自身をを書き換える(オーバライド) 事が出来るのは今後の発展性を匂わせる。
2014/06/29(日) 15:23:53.16ID:3ycH5aDE
ID:mYSKVn4w
↑ただの知ったかぶりにしか見えん
2014/06/29(日) 15:31:53.02ID:mYSKVn4w
>>109 スクリプトとして動きそうと言うだけと、動く事を見据えた言語では仕様が異なる。

Swiftは動的関数な部分が大きい。 最初からそう言う言語だからスクリプトとして動かしても性能を発揮出来る。
遅延評価lazy とか。
2014/06/29(日) 16:24:07.43ID:OApS8+mw
ObjCとの比較を除けば、他言語との比較はまだ文法的に比較してここら辺似てるとか言ってる段階でなんとも言えないなあ
まだベータ版だし、Appleがどこまで公開するかと他環境への展開待ちかな
2014/06/29(日) 16:50:02.83ID:mYSKVn4w
コンピュータなんだから、どんな言語でも出来ないことはツギハギでも追加して出来る様にして行くから、出来ることは殆ど同じになるんだよね。

要は如何にスマートに実装するかどうかじゃ無いのかな。
ツギハギ言語では辛い場面が出る。

Swiftと言えど、過去のしがらみを全て捨てるわけにはいかなかったみたい。
過去の遺産を使う限り仕方ないだろうね。
生糸から紡ぎ治せれば良かったが、古着をほどいた糸で紡ぎ直したと言う感は否め無い。
2014/06/29(日) 16:53:33.37ID:FVthjcnk
ID:mYSKVn4w からkenokabe臭がする
2014/06/29(日) 16:59:42.98ID:dKYUFGy4
>>112
動的関数って何?
2014/06/29(日) 21:50:03.17ID:vXcDBpcb
>>114
計算モデルを間違わない限りは、なんでも追加などしない。
2014/06/30(月) 00:46:05.49ID:3lwG7vbW
>>116
https://www.youtube.com/watch?v=jrjfZ2ltvgE
11999
垢版 |
2014/06/30(月) 00:47:03.04ID:nIm5vaJz
>>100
どこをどう読んだらそんな誤解できるんだ。
一部分だけを LLVM IR を通してコンパイルするだけで、Javascript の VM が LLVM で動いているわけじゃない。
ただの JIT コンパイルであって、Javascript の VM から LLVM で JIT コンパイルしたコード小片を呼び出しているだけ。
GC は実装したんじゃなくてWebKit メモリマネージャに同居する手法を紹介してる。

つーか最初に js バイトコードになるってどっちの記事にもあるだろ。
その記事の Webkit の話なら Swift を LLVM IR に持っていく前に、最初の段階で js バイトコードにする必要があるだろ。
>94 の
> (略)Javascripが動く環境で動かすのは容易い話であり、(略)
とはならない。
Swift を js や js バイトコードに変換すれば別だが。

ほんとちゃんと読んでから言いふらしてよ。誤解する人が出て誤解が広まったらどうするんだ。

> swiftはLLVMのLLDBでインタプリタを実現してるから、
これも誤解なんじゃないか。
Playground は VS のエディットコンティニュのようなことをやってるんじゃないのか。
元々 Xcode で Obj-C/C++ の式を実行時に評価できたし、Swift なら多くの場合にセレクタの差し替えで済むわけだから、
LLDB が VM を持っててインタプリットしていると考えるのは不自然だ。
ちょっと検索してみたところでは、インタプリタとして動作していると信じている人は見つからなかった。
ソースがあれば出してくれ。
2014/06/30(月) 01:35:18.75ID: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
2014/06/30(月) 02:18:56.74ID:2Uifxpzh
>>120 PlaygroundもLLDBが動いてる。
2014/06/30(月) 09:46:26.06ID:+/AeVnyE
>>120
>The Swift REPL (Read-Eval-Print-Loop) acts like an interpreter.
「SwiftのREPLはインタプリタのように動作する」
つまり実際にはインタプリタでは無いんだよ
2014/06/30(月) 10:53:35.14ID: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に入る。
2014/06/30(月) 11:03:44.45ID:+/AeVnyE
>>123
SwiftのREPLは逐次ネイティブコードに変換してから実行してるだろうからその1〜3に当てはまらない

REPL=インタプリタ では無いよ?
2014/06/30(月) 11:22:20.22ID:0ZRqmqkf
VSなんかILのインタプリタが搭載されてて
ダンプ情報をデバッガに読ませてエディットコンティニューなんて荒業が可能らしいよ
2014/06/30(月) 12:15:26.35ID:O7drrXEn
>>123
> Javaなんかよりよほどインタプリタの王道に近い動きをするぞ。

何を言ってるんだお前は
2014/06/30(月) 15:00:27.03ID: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;
2014/06/30(月) 15:05:01.81ID:2Uifxpzh
>>127 言い忘れた。 コンパイラは、MacOS上で動かしていてもコンパイル結果をターゲットのARMとしての出力が出来るのは当然。
だからと言ってARMの機械語で動かしている訳でない事も当然。

この意味が解るか? 機械語を実行している訳じゃないんだよ。
2014/06/30(月) 15:24:33.50ID:+/AeVnyE
>>127
だからさ、LLVM使ってればLLVM-IRとか出力できるのは当たり前なんだって
だけどLLVM-IRのファイル作れてもそれを直接解釈実行する仕組みはどこにあるんだ?

現状LLVMの仕組みを利用してインタプリタの"ような"動作するものはいくつかある
上でも挙がってるSafariの最終レベルのJTTとか、ChromeのPNaClとか、AndroidのARTとか

これらは全部LLVMを使ってるけど、LLVM-IRを解釈実行する仕組みをもってるわけではなくて、
LLVM-IRからネイティブなコードまで変換してから、LLVMとは無関係な機構で実行する

Swiftがスクリプト言語のように使えるとしても、それはLLVMとは関係無い
LLVMはネイティブコードを生成するために使ってるだけ
LLVMと無理やり結びつけて煽るのを止めてくれるかな?
2014/06/30(月) 15:31:16.96ID:+/AeVnyE
>>128
コンパイラなんてただの変換処理系なんだから、
コンパイラを動かしてるマシンやOSとコンパイラが出力するコードが関係無いのは当たり前じゃないか
そんなことをいちいち説明するのに何か意味があるのか?
2014/06/30(月) 19:45:48.79ID:nONpRjt1
>>122
インタープリターだもんな
2014/06/30(月) 19:47:58.85ID:nONpRjt1
>>127
どうしてassemblyって書いてあるのに、
あせんぶらっていうの?
2014/06/30(月) 19:55:11.52ID:64xob6TW
ブリよりもブラのほうが言いやすいだろ
2014/06/30(月) 22:19:13.64ID:HxSDp0H8
>>132
クロマトグラフィーを、クロマティと読んじゃうオッさんなんだろう。
2014/06/30(月) 22:49:24.44ID:2Uifxpzh
>>132 形容詞と名詞の違い。
2014/06/30(月) 22:59:40.40ID:RSvNaMx4
>>135
どっちも名詞すよ
2014/06/30(月) 23:36:17.56ID: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
2014/06/30(月) 23:39:44.51ID:O7drrXEn
いちいちWikipediaで調べるなよwww
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況