前スレ
ぶっちゃけ始めるのにいい言語て何?
http://mevius.5ch.net/test/read.cgi/tech/1583223433/
ぶっちゃけ始めるのにいい言語て何 part2
http://mevius.5ch.net/test/read.cgi/tech/1594883518/
ぶっちゃけ始めるのにいい言語て何 part3
https://mevius.5ch.net/test/read.cgi/tech/1599110613/
ぶっちゃけ始めるのにいい言語て何 part4
https://mevius.5ch.net/test/read.cgi/tech/1615612545/
ぶっちゃけ始めるのにいい言語て何 part5
https://mevius.5ch.net/test/read.cgi/tech/1622766330/
Haskell には賛否両論あるけど、そこは次の世代に判断してもらおう。
【C?】最初の言語に何を選ぶか【Haskell?】
■ このスレッドは過去ログ倉庫に格納されています
1Mb
2021/09/09(木) 17:13:45.64ID:yI7BAQ6X2021/09/09(木) 17:18:56.65
初期学習コストが高い言語を最初に学ぶというのは如何なものか
2021/09/09(木) 17:37:28.72ID:hvR+3cwr
すべての機能を一気に学ぶのではなく
段階的に学べば大丈夫?
段階的に学べば大丈夫?
2021/09/09(木) 17:43:04.64ID:42HI0dLk
Haskellとか誰がどこで使ったんだよ
2021/09/09(木) 18:06:49.41ID:18O2MBOf
>>1
それならベストな選択はRustです
RustはHaskellの型システムやモナドを取り入れたプログラミング言語です
そしてRustはメモリ安全性が保証されてGCも無くモダンな書き方で便利にプログラミングできるC言語の超越進化版でもあります
それならベストな選択はRustです
RustはHaskellの型システムやモナドを取り入れたプログラミング言語です
そしてRustはメモリ安全性が保証されてGCも無くモダンな書き方で便利にプログラミングできるC言語の超越進化版でもあります
6デフォルトの名無しさん
2021/09/09(木) 18:43:00.78ID:VcdPV4nP 1.機械語
2.FORTH
3.LISP
4.C
この順がベスト
2.FORTH
3.LISP
4.C
この順がベスト
2021/09/09(木) 19:11:55.92ID:FKVpwywQ
1000 名前:デフォルトの名無しさん [sage] :2021/09/09(木) 18:41:37.72 ID:wE7qph1K
ぶっちゃけ始めるのにいい言語って言ってんのに、CだのRustだのHaskellだのってバッカじゃねぇのおっさんども
お前らの好みなんか聞いてない。
こんなクソスレはもういらん
初学者はPython、Javascript、Ruby、PHPの中から選べばいい。
ぶっちゃけ始めるのにいい言語って言ってんのに、CだのRustだのHaskellだのってバッカじゃねぇのおっさんども
お前らの好みなんか聞いてない。
こんなクソスレはもういらん
初学者はPython、Javascript、Ruby、PHPの中から選べばいい。
2021/09/09(木) 19:36:32.37ID:18O2MBOf
9Mb
2021/09/09(木) 20:58:27.88ID:yI7BAQ6X10Mb
2021/09/09(木) 21:02:02.94ID:yI7BAQ6X11Mb
2021/09/09(木) 21:10:04.32ID:yI7BAQ6X >>6
言いたいことはよくわかるような気はするのだが、
> 1.機械語
の部分はニモニックなのかアセンブラなのかという
話はある。
Z80 とか M6809 とかのエミュレータがあったら
ちょっとお奨めな気はするんだが、
C 言語の「コンパイラ言語→アセンブラ→バイナリ」という
コンセプトに立ち戻ってみるのもよさそうに思う。
言いたいことはよくわかるような気はするのだが、
> 1.機械語
の部分はニモニックなのかアセンブラなのかという
話はある。
Z80 とか M6809 とかのエミュレータがあったら
ちょっとお奨めな気はするんだが、
C 言語の「コンパイラ言語→アセンブラ→バイナリ」という
コンセプトに立ち戻ってみるのもよさそうに思う。
12Mb
2021/09/09(木) 21:22:34.52ID:yI7BAQ6X まず仮想機械を実装して、
それ用のアセンブラを開発して、
コンパイラを書くというのはどうだろうか。
その仮想機械には、少なくとも
・フラグ
・アキュムレータ
・B レジスタ
・プログラムカウンタ
・スタックポインタ
があるとして、フラグには
・キャリー
・ボロー
・オーバーフロー
・エラー
があって、
メモリ空間は 64Kb。
で、それぞれの(フラグ以外の)レジスタのサイズは
16 ビットで、戻り値は 16 ビット固定でアキュムレータに
入っている、みたいな(ANSI-C になる前の)C 言語みたいな
教育用言語があったら面白そうな気がする。
それ用のアセンブラを開発して、
コンパイラを書くというのはどうだろうか。
その仮想機械には、少なくとも
・フラグ
・アキュムレータ
・B レジスタ
・プログラムカウンタ
・スタックポインタ
があるとして、フラグには
・キャリー
・ボロー
・オーバーフロー
・エラー
があって、
メモリ空間は 64Kb。
で、それぞれの(フラグ以外の)レジスタのサイズは
16 ビットで、戻り値は 16 ビット固定でアキュムレータに
入っている、みたいな(ANSI-C になる前の)C 言語みたいな
教育用言語があったら面白そうな気がする。
13Mb
2021/09/09(木) 21:31:09.58ID:yI7BAQ6X2021/09/09(木) 21:46:07.20ID:18O2MBOf
>>13
RustにForth言語の要素は一切ない
その分類ならばRustのベースはC言語
そこへHaskellの型システムなどを持ち込み強力な静的型付けとするとともに
静的リソース管理によりメモリ安全性を保証したのがRust言語
RustにForth言語の要素は一切ない
その分類ならばRustのベースはC言語
そこへHaskellの型システムなどを持ち込み強力な静的型付けとするとともに
静的リソース管理によりメモリ安全性を保証したのがRust言語
15Mb
2021/09/09(木) 22:00:53.49ID:yI7BAQ6X2021/09/09(木) 22:39:44.53ID:q0TKbS94
>「とりあえずスタックに積んどけばスタックポインタを
>書きかえれば面倒臭くない」という思想が
どこがRustと関係あると?
>書きかえれば面倒臭くない」という思想が
どこがRustと関係あると?
2021/09/09(木) 22:45:18.86ID:18O2MBOf
18デフォルトの名無しさん
2021/09/09(木) 23:30:31.90ID:f/JM052X スタックを解放するのか
胸熱
胸熱
2021/09/09(木) 23:53:35.58ID:18O2MBOf
20デフォルトの名無しさん
2021/09/10(金) 00:06:49.30ID:M/ht9nan いや解放なんてしないだろ
2021/09/10(金) 00:30:17.75ID:59f2QwjZ
2021/09/10(金) 00:46:22.91ID:88EXXIi7
積み上げる、取り除く?
2021/09/10(金) 02:51:11.39ID:Arq1o4EZ
クレート?ていうかライブラリのコード規約で選ぶのはどうだろう。
最初なんだから、あんまスペルを省略されると判りにくい。
慣れると冗長で面倒になるかも知れないけど。
最初なんだから、あんまスペルを省略されると判りにくい。
慣れると冗長で面倒になるかも知れないけど。
2021/09/10(金) 11:36:37.35ID:/+WUhMy8
最初はCじゃないか?
メモリの扱いが見えるようになってると、メモリの扱いが隠されてる言語でも良いプログラムが書けるようになる
メモリの扱いが見えるようになってると、メモリの扱いが隠されてる言語でも良いプログラムが書けるようになる
2021/09/10(金) 19:58:00.69ID:me4B51C9
>>21
それってpopっていうのでは・・・
それってpopっていうのでは・・・
2021/09/10(金) 20:44:16.27ID:iOAXb/4V
>>25
スタックポインタの復帰にpopを使う方法もありだが
例えばメジャーな86系でメジャーなやり方なら別レジスタに退避させるのがメジャーな方法なのでmovになる
他にも完全にコントロールできるならスタックポインタの数値加算(スタックが0方向に伸びる場合)で復帰もあり
いずれにせよスタック上にローカル変数などの領域確保はスタックポインタの数値減算(同上)で行うのがメジャー
そしてスタック上のその領域の解放はスタックポインタの復帰(上述)で終わる
スタックポインタの復帰にpopを使う方法もありだが
例えばメジャーな86系でメジャーなやり方なら別レジスタに退避させるのがメジャーな方法なのでmovになる
他にも完全にコントロールできるならスタックポインタの数値加算(スタックが0方向に伸びる場合)で復帰もあり
いずれにせよスタック上にローカル変数などの領域確保はスタックポインタの数値減算(同上)で行うのがメジャー
そしてスタック上のその領域の解放はスタックポインタの復帰(上述)で終わる
2021/09/10(金) 21:34:50.59ID:bDO2hW37
説明に必要な抽象度を調節できない人ってプログラマーに向いてないよね
2021/09/10(金) 21:45:28.86ID:ae9TKcqK
スタック上で関数ローカル変数の領域は
・スタックを伸ばして領域を確保
・スタックを戻して領域を解放
極めてシンプル
・スタックを伸ばして領域を確保
・スタックを戻して領域を解放
極めてシンプル
29デフォルトの名無しさん
2021/09/10(金) 21:58:24.62ID:kfFI0CKc つまりまず最初にC言語をやるべきだな。
次にアセンブリ言語というよりCPUの共通的な概要仕組み。
そのあとHaskellかRustなどの強力な静的型付けプログラミング言語へ進むのが良いだろう。
次にアセンブリ言語というよりCPUの共通的な概要仕組み。
そのあとHaskellかRustなどの強力な静的型付けプログラミング言語へ進むのが良いだろう。
2021/09/10(金) 22:42:43.39ID:kwXNo1Gk
こ・・・ここはお前の日記帳じゃねえ。
31デフォルトの名無しさん
2021/09/10(金) 23:28:58.62ID:EyQ85oMr じじぃが最期の言語に何を選ぶか
にしたら
どうしようもない耄碌ばかりだ
にしたら
どうしようもない耄碌ばかりだ
2021/09/11(土) 00:01:30.12ID:N54U5q1q
2021/09/11(土) 00:20:02.53ID:6SR7xJAU
1.Python
2.Haskell or Go
3.Rust or やりたいことに応じてjsとか
これやろ
2.Haskell or Go
3.Rust or やりたいことに応じてjsとか
これやろ
34デフォルトの名無しさん
2021/09/11(土) 01:03:41.75ID:w5S7rLqj35デフォルトの名無しさん
2021/09/11(土) 06:33:42.19ID:BJyOlAhQ 関数型が全然わからない
ocamlやhaskell触ってみたけど手も足もでなかった
あれってすべて適用した引数ベータ展開しながら簡約していった結果をコーディング中に頭の中でシミュレーションしていかないと書けない代物なのか?
それじゃあワイできないよ
後型システムの振る舞いがなんにもわからないわ
あれってocamlは型推論あるけど型が明示的に表記されない代わりは自分自身で頭の中に型付け規則を当てはめながら追っていくしかないんか?
それじゃあワイできないよ
以上のような理由からワイは例えばfixという不動点コンビネータの高階関数とかわからなかった
とにかく自分にはお手上げやわ
ocamlやhaskell触ってみたけど手も足もでなかった
あれってすべて適用した引数ベータ展開しながら簡約していった結果をコーディング中に頭の中でシミュレーションしていかないと書けない代物なのか?
それじゃあワイできないよ
後型システムの振る舞いがなんにもわからないわ
あれってocamlは型推論あるけど型が明示的に表記されない代わりは自分自身で頭の中に型付け規則を当てはめながら追っていくしかないんか?
それじゃあワイできないよ
以上のような理由からワイは例えばfixという不動点コンビネータの高階関数とかわからなかった
とにかく自分にはお手上げやわ
36デフォルトの名無しさん
2021/09/11(土) 07:29:26.31ID:w5S7rLqj >>35
Haskellの型クラスやモナドを採り入れつつCと同じ手続き型言語のRustからまずは入ってみたらどうでしょうか?
Rustのコンパイラは賢くフレンドリーなので型のミスも細かく教えてくれます
Haskellの型クラスやモナドを採り入れつつCと同じ手続き型言語のRustからまずは入ってみたらどうでしょうか?
Rustのコンパイラは賢くフレンドリーなので型のミスも細かく教えてくれます
37デフォルトの名無しさん
2021/09/11(土) 09:09:22.33ID:BJyOlAhQ2021/09/11(土) 09:39:15.97ID:3yMDZ0jk
>>26
pop というのは機械語(ニモニック)レベルではなかったような。
sp(スタックポインタ)から sub するか(できるのか?)、
sp の値をアキュムレータに持ってきて sub して書き戻すか
(フラグの中身が変わったり、アキュムレータの中身を堆肥させたり
ちょっと面倒臭そうだ)、
小さい言語処理系を開発するときは、FORTH のインタプリタを実装して
その上にコンパイラを被せるとかいうのは二度ほどやったことがある。
「Make 10」パズルの全数解を求める、とかいった場合だと、
けっきょくそれをやるのが素朴だと思う。
pop というのは機械語(ニモニック)レベルではなかったような。
sp(スタックポインタ)から sub するか(できるのか?)、
sp の値をアキュムレータに持ってきて sub して書き戻すか
(フラグの中身が変わったり、アキュムレータの中身を堆肥させたり
ちょっと面倒臭そうだ)、
小さい言語処理系を開発するときは、FORTH のインタプリタを実装して
その上にコンパイラを被せるとかいうのは二度ほどやったことがある。
「Make 10」パズルの全数解を求める、とかいった場合だと、
けっきょくそれをやるのが素朴だと思う。
39Mb
2021/09/11(土) 13:08:24.97ID:3yMDZ0jk 関数型とかラムダ計算とかいっても、
遅延評価がないと実行効率がそんなに上がらないんだよね。
「これ、前にやったことがある」「だから、前にやった結果を
そのまんま使おう」というのが遅延評価なのだけれど、うーんと
末端のほうだと、「前にやったことがあるんだっけ?」という
探索に時間がかかっちゃうので、探索効率と組合せ論的な爆発の間の
トレードオフになっちゃうので、手続き型と関数型のどっちを
選ぶかというのは、ある程度実効機序が解ってないと難しいんだよね。
そういう意味では C 言語とか FORTH とかいった、コンピュータ・
アーキテクチャべったりの言語から始めたり、古いタイプの高級言語から
入るのもひとつのやりかただと思う。
そういう意味では Java とか C♯とかは、プロ用には向いてるけど
基礎を知らないと難しいかも。
昨今は F1 のトランスミッションもオートマチックだそうだしなぁ。
昔のマニュアル車やゴーカートから始めてみるのもいいんじゃない?
遅延評価がないと実行効率がそんなに上がらないんだよね。
「これ、前にやったことがある」「だから、前にやった結果を
そのまんま使おう」というのが遅延評価なのだけれど、うーんと
末端のほうだと、「前にやったことがあるんだっけ?」という
探索に時間がかかっちゃうので、探索効率と組合せ論的な爆発の間の
トレードオフになっちゃうので、手続き型と関数型のどっちを
選ぶかというのは、ある程度実効機序が解ってないと難しいんだよね。
そういう意味では C 言語とか FORTH とかいった、コンピュータ・
アーキテクチャべったりの言語から始めたり、古いタイプの高級言語から
入るのもひとつのやりかただと思う。
そういう意味では Java とか C♯とかは、プロ用には向いてるけど
基礎を知らないと難しいかも。
昨今は F1 のトランスミッションもオートマチックだそうだしなぁ。
昔のマニュアル車やゴーカートから始めてみるのもいいんじゃない?
2021/09/11(土) 14:07:43.10ID:ivXsMFHP
マニュアル車は、
少し低めのスピードで高速ギアにしたり、エンジンブレーキかけたりできるからね。
渋滞時だけは、面倒。
少し加速して、すぐニュートラル。
ようするに、燃費をいかに少なくするか?なのだけど。
少し低めのスピードで高速ギアにしたり、エンジンブレーキかけたりできるからね。
渋滞時だけは、面倒。
少し加速して、すぐニュートラル。
ようするに、燃費をいかに少なくするか?なのだけど。
2021/09/11(土) 14:17:00.36ID:ivXsMFHP
スポットから始める、練習から始める、ってことかな?
2021/09/11(土) 14:30:47.28ID:PRM8i6LA
2021/09/11(土) 14:31:31.97
このスレ、自転車置き場の議論スレでは?
44デフォルトの名無しさん
2021/09/11(土) 15:30:55.17ID:3yMDZ0jk >>42
昔、『I/O』の附録だった、Z80 とか 6809 のお経本
(インストラクション・セット・サマリ)とか久しく
見てないからなぁ。
push とか pop とかの引数をどこから取ってくるのか、
といったところまでは思い出せない。
昔、『I/O』の附録だった、Z80 とか 6809 のお経本
(インストラクション・セット・サマリ)とか久しく
見てないからなぁ。
push とか pop とかの引数をどこから取ってくるのか、
といったところまでは思い出せない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】日本産牛肉の対中国輸出再開協議が中止 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★2 [BFU★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 高市早苗、こんな大事な時に雲隠れして一切表に出てこない。ネトウヨ「高市さんは天照大御神の生まれ変わり!」 [165981677]
- 【実況】博衣こよりのえちえち雑談🧪★2
- 【格差社会】小泉進次郎じゃなくて高市早苗が自民党新総裁になると見切ってFXやってた奴、FIREライン [517791167]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
- 中国政府、日本人のビザ免除停止、鬼滅の刃公開停止を検討へ [271912485]
- 高市早苗って戦後最悪の総理大臣なのでは🤔? [929293504]
