2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【脳科学】プログラムのコードを読む時に活性化される脳の領域は言語処理と同じではない [すらいむ★]

1 :すらいむ ★:2020/12/17(木) 14:54:47.66 ID:CAP_USER.net
プログラムのコードを読む時に活性化される脳の領域は言語処理と同じではない

(前略)

 今回の研究では2回に分けて実験が行われており、1回目の実験ではPythonを、2回目の実験では小さな子ども向けのプログラミング言語であるScratchJrが用いられました。
 これらはいずれも読みやすいことで知られるプログラミング言語です。

 2つの実験にはそれぞれPythonとScratchJrの知識を持つ20人以上のプログラミング経験者が参加し、fMRIで脳活動をスキャンした状態でPythonまたはScratchJrのコードを読み取り、どのような動作をするのかを考える問題に回答しました。
 また、被験者の言語領域が脳の右半球と左半球のどちらにあるのかも調査され、コードを読んでいる最中にどの部位が活性化するのかを分析しました。

 その結果、研究チームは被験者がコードを処理する際に言語領域がほとんど反応しておらず、代わりにmultiple demand networkと呼ばれるネットワークが活性化することを発見しました。
 multiple demand networkは脳の前頭葉と頭頂葉全体に広がっており、一度に多くの情報を必要とするタスクやさまざまな精神的タスクを実行する能力を担っているとのこと。

 以前の研究では、数学や論理の問題が左半球のmultiple demand networkを活性化させることが示されましたが、コードに焦点を当てた今回の研究では、左半球と右半球の両方でmultiple demand networkが活性化したそうです。
 この点から、コードを処理する際のメカニズムは数学的問題を処理する際と同じではないことが示唆されています。
 Ivanova氏は、「コンピューターコードを理解するのは独特なことのようです。これは言語と同じではなく、数学や論理とも同じではありません」と述べています。

(以下略、続きはソースでご確認下さい)

Gigazine 2020年12月17日 06時00分
https://gigazine.net/news/20201217-reading-computer-code-brain-region/

48 :名無しのひみつ:2020/12/18(金) 16:23:09.38 ID:gJQVuwLw.net
>>2
プログラミング言語は基本的に英語の短縮系だからね

49 :名無しのひみつ:2020/12/18(金) 16:28:07.71 ID:gJQVuwLw.net
>>42
日本関係なくて草

50 :名無しのひみつ:2020/12/18(金) 16:37:02.39 ID:HfNVy5kL.net
>>34
短気は美徳でしょ rubyの教科書に書いてある
傲慢はpython
あと怠惰のperl を加えれば3大美徳だ

51 :名無しのひみつ:2020/12/18(金) 16:42:16.21 ID:55fahxpj.net
同じプログラミング言語でもバカになったり天才になったりする
自然言語でも同じこと
>>1の研究はアホ

52 :名無しのひみつ:2020/12/18(金) 16:43:15.94 ID:55fahxpj.net
>>50
言語で決まるようなレベルは遥か先のスキルレベル
エントリーはさほど変わらない

53 :名無しのひみつ:2020/12/18(金) 16:43:52.95 ID:55fahxpj.net
>>48
年寄りだろ?

54 :名無しのひみつ:2020/12/18(金) 16:45:13.28 ID:55fahxpj.net
>>40
アルゴリズムの教科書に出てくるような綺麗で整理されて合理的で洗練されたコードを読んだり書いたりすること

数学の証明理解するようなもんで初心者にはなにが書いてあるのかわからない

55 :名無しのひみつ:2020/12/18(金) 16:45:54.90 ID:55fahxpj.net
>>33
その質問をプログラミング言語で書いてみろ

56 :名無しのひみつ:2020/12/18(金) 16:46:57.44 ID:55fahxpj.net
>>41
全体を数行で書けばいいんじゃね?

57 :名無しのひみつ:2020/12/18(金) 16:53:10.02 ID:HfNVy5kL.net
>>56
haskellとかなら全体を書いて
詳細を後から宣言とかできるけど、
そういう言語は効率のために少ない

58 :名無しのひみつ:2020/12/18(金) 17:00:01.27 ID:qH8O3MBq.net
プログラムは依存関係把握しつつ順序性を見るよね
むしろ言語処理の方が分からない

59 :名無しのひみつ:2020/12/18(金) 17:03:08.43 ID:Cf2RH2U0.net
プログラムはどっちかっていうと論理的なパズルだな
自然言語の習得が得意だからといって文章の構成力に秀でているわけじゃない

60 :名無しのひみつ:2020/12/18(金) 17:12:50.39 ID:ViQsFrUH.net
SSS コンピューティングパラダイムを創始する
SS プログラミングパラダイムを創始する
S 目的に合ったプログラム言語を新たに作る
A 既存のプログラム言語をエレガントに使いこなす
B 目的をはたすプログラムが書けてバグの修正ができる
C 自称「書いた」プログラムは切り貼り
D プログラムソースコードに触ると改悪する
E 能力的にコードを触れない。が、難癖はつける

61 :名無しのひみつ:2020/12/18(金) 18:24:31.69 ID:g2GKoLiw.net
BとCの中間かな
書けたりコピペしたり

62 :名無しのひみつ:2020/12/18(金) 19:51:47.53 ID:kcQpITY0.net
>>40
エレガントなコードだろうがスパゲッティなコードだろうが
プログラムのソースコードってのは1行1行に分解すれば
その部分の意味することはこの上なく明確なのよね

・ループを指定回だけ回す
・配列に値を格納する
・配列から値を取り出す
・この変数の値が0か否かを検査する

もう誤解のしようもないほど明確

でも、それがわかったところで「プログラムを理解した」事にはならない

・なぜループ回数はこの回数なのか?
・どういう意味を持つループなのか?
・なぜその配列にその値を格納するのか/取り出すのか?
・その値はどういう意味を持つものなのか?
・その変数の値と0を比較することにはどういう意味があるのか?

書かれたコードの意味をもう一段メタなレベルで考える必要、Why?を考える必要がある
それは推理に近い

63 :名無しのひみつ:2020/12/18(金) 19:57:16.70 ID:wPQknmjM.net
>>52
言語の話だと思ってるなら誤読では?

64 :名無しのひみつ:2020/12/18(金) 20:12:28.56 ID:wPQknmjM.net
>>62
コード自体にセンチネルsとかイテレータiとか使うけど勘違いバグの温床にもなる

65 :名無しのひみつ:2020/12/18(金) 20:16:08.50 ID:Mglx2i38.net
プログラミング能力が数的能力に依存するなら、今国がやってるような早期教育は意味ないことになるなぁ。
グーグルのピチャイも子供の時はPCなんて触れたこともなかったわけだし。

66 :名無しのひみつ:2020/12/18(金) 20:36:51.36 ID:lYceNkkv.net
他人の書いたクソコード修正するときは絶望感しかないよ

67 :名無しのひみつ:2020/12/18(金) 20:42:00.21 ID:6rEsNPkC.net
スパゲティコードを眺めるだけなら楽しいけど直すのは嫌だな…

68 :名無しのひみつ:2020/12/18(金) 21:07:12.19 ID:fyUzRGkf.net
htmlとcssしかわからん…
これもプログラミング言語だよね?(´;ω;`)

69 :名無しのひみつ:2020/12/18(金) 21:09:13.98 ID:g2GKoLiw.net
>>68
マークアップ言語だな

70 :名無しのひみつ:2020/12/18(金) 21:15:40.74 ID:ViQsFrUH.net
Malbolge言語で書かれた"Hello, world"を出力するプログラム

(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<

71 :名無しのひみつ:2020/12/18(金) 21:19:20.44 ID:PF2aRLH7.net
>>1
ノリノリで書いている最中の小説家と一致すると思うね。

72 :名無しのひみつ:2020/12/18(金) 21:19:53.18 ID:oGJpI1G0.net
>>1
当然だろそうじゃなきゃあんな根暗のse居るわけないじゃん
同じだったら毎日明るく笑顔で会話ののse職場になってしまうだろ

73 :名無しのひみつ:2020/12/18(金) 21:25:35.46 ID:PF2aRLH7.net
プログラミングは創作活動だよ。
子供にも分かりやすい登場人物が少なく、筋の通った短編を幾つも書いて、最終的に大きなストーリーに繋げるみたいな。

74 :名無しのひみつ:2020/12/18(金) 21:33:42.12 ID:wPQknmjM.net
>>73
インターフェイス、章立てのツナギをちんまりまとめるのも腕だよな

あの主人公があんなこともこんなこともしていた、みたいな全部入り大河ドラマにしちゃいけない

75 :名無しのひみつ:2020/12/18(金) 21:45:45.48 ID:V3CM5O7c.net
>>73
プログラミングによって何を作るのか、という部分はクリエイティブだが、プログラミングそのものは創作的でない
単なるアイデアやロジックの写像に過ぎない

76 :名無しのひみつ:2020/12/18(金) 22:09:30.23 ID:PF2aRLH7.net
>>75
そうかな。
小説だって、コアのアイデアをどう書くかでしょ?
プログラミングは、それを児童小説のように分かりやすく単純に落とし込むところに、創作的な要素があると思うけれど。
データ構造を考えるステップなんて、まさに創作活動と思わない?

>>73
んだね。
共感してくれる人がいてくれて嬉しい。
大河ドラマにしちゃいけないは激しく同意。
しかし、世の中には波乱万丈コードの多いこと…。

77 :名無しのひみつ:2020/12/18(金) 22:19:04.75 ID:gJQVuwLw.net
ID変え忘れて何やってんだよ
ちゃんと自演しろよw

78 :名無しのひみつ:2020/12/18(金) 22:27:37.04 ID:PF2aRLH7.net
>>77
あー、すまん。
後半は、>>74宛てだな。

79 :名無しのひみつ:2020/12/18(金) 23:17:00.45 ID:wwxy8QVc.net
上手なプログラムを書こうとするなら、処理じゃなくてデータ構造を把握する方が重要。
これは結局、揺らいだり曖昧な自然言語で表現された言葉の中から同じ物を意味する用語を統一していく作業だな。

80 :名無しのひみつ:2020/12/18(金) 23:47:24.21 ID:BUxrXwFc.net
やはり素人しかいないな…

81 :名無しのひみつ:2020/12/19(土) 00:06:07.24 ID:skW6c57g.net
物事をいかにうまく抽象的に捉えるか、うまくまとめるか、問題の構造を
いかにうまく表現するかだと思う。そういう抽象化は、数学が歴史的に
先行していたので、これまでは数学的な記述や構造が手本・模範になってきた。
しかし、将来はそれを越えてプログラムが数学で扱う範囲を超えて、
より世界の実在や実体に即した複雑な事象を如何に抽象的に取り扱うか
といったチャレンジになるだろう。ただし、プログラムのような記号の列
によって扱うといった方法以外のアプローチもあることを忘れてはならない。

82 :名無しのひみつ:2020/12/20(日) 00:41:49.19 ID:ynSZWIBP.net
なんでプログラム書く話になってるの?
スレタイ読めよ

83 :名無しのひみつ:2020/12/20(日) 03:02:31.90 ID:+2KC139z.net
外国には文盲といって、字が読めない、文章が読めない人はある一定割合で
存在したりする。幼少期の教育体制に問題があるのだ。

84 :名無しのひみつ:2020/12/21(月) 09:25:32.26 ID:Wo6N3Fiy.net
読むのはパズルを解いてる感覚に近いな
法則性を見出す感じ

85 :名無しのひみつ:2020/12/21(月) 18:19:40.06 ID:7qkK8kCp.net
某qiitaの某人気記事(イタいという人もいる)に
型指定をする言語で、その型に別名を与えられる構造ならば
その別名をなるだけ分かり易くしておけ、なんて書いてあった
あとで読み易いぞと

数学だと、円Aの半径をrとする、
って書くけど、プログラミングだとdouble r とかlet rとか
更に型指定の無い言語が急増してるから
ちゃんとドキュメントを作っておかないと忘れっぽい人だったら
半年後には何をしてたのかさっぱり分からん!になるからなあ

86 :名無しのひみつ:2020/12/23(水) 20:20:14.84 ID:j9gzKCd9.net
ここをこう書いたらこういう処理ができ、そしてその処理を纏める事ができるかな
ってのがプログラムを書くときの考え方

プログラムを書く奴が読む場合は間違いと理論的にどこどこ似た処理がな有るから纏められるという事が調べられる

読むだけの奴はそういう書くときの考えは要らずただ間違ってる部分が無いかをチェックするだけ

日本はwordpressが最も流行ってるのが示す通り他人のプログラムを使ってるだけ
それでプログラムを分かったつもりになってうえからの偉そうな自称評論家が多い

87 :名無しのひみつ:2020/12/23(水) 20:43:35.62 ID:OI/Rypyz.net
自分でクラスや関数を設計するのとか楽しいけどなあ

88 :名無しのひみつ:2020/12/27(日) 23:02:54.41 ID:QevlU1S3.net
個人的には、ピアノの演奏に近い

89 :名無しのひみつ:2021/01/12(火) 17:41:37.05 ID:uyswV9Xb.net
やはりlispは正しかったんだな
Pythonもcっぽく見えるlispだしな

90 :名無しのひみつ:2021/01/21(木) 09:34:17.04 ID:CpEpTXmj.net
>>89
違うぞ。Lispは速いがPythonは糞遅い。

91 :名無しのひみつ:2021/01/21(木) 10:49:02.52 ID:Yv4BiLln.net
既に大人になってしまってから外国の言語を憶えようとしてもなかなか憶えられない
のも、きっと母国語の言語を扱うのとはまるで別の脳の領域に割り当てられるから
かもしれない。逆に幼少期に複数の言葉を交ぜて使っていると、ちゃんぽんになって
しまうという。

プログラム言語も幼少期から学習させて書かせていたら、母国語と具茶混ぜに
なって、読み書きは達者ではあるけれども、悪い影響も出そうに思う。
単純なコーディングならば、まるで口からコードを吐くようにして
はかどるだろうけれどもね。

幼少期にBASICを学んだら、大人になってからLispやPythonがちゃんと
できるかどうかはわからない。先に学んだ言語に引っ張られて、悪影響が
でたりするかも。特にプログラミングのパラダイムがまるで違うものだと、
どうなるかな心配だ。プログラミング言語は流行り廃りが激しいので、
10年20年30年の期間を見据えて何を学んで使うべきかを見極めるのは
難しいから、へたに鋳型に嵌めるようなことをしたら還ってマイナスかも
しれない。

92 :名無しのひみつ:2021/01/21(木) 12:41:30.04 ID:mr555sqv.net
何も資料を見られない環境ならそうだろうけど
検索OKだからまあ誤魔化せる

93 :名無しのひみつ:2021/01/22(金) 03:47:22.91 ID:BKIj4cgn.net
>>90
まあPythonでも拡張でjitとか使えたような?
まあ大きく括ればjitもランタイム最適化(dynamic compilation)ではあるけど、精々各呼び出しに対しての定数ブーストでしかないしな

ランタイムにincremental compilationできる(言語設計的に可能)lisp は、初めにこそオーバーヘッドがあるものの、指数関数的に速度が向上していくんで、使かえば使う程速くなっていく
save-lisp-and-dieでそのイメージをダンプ出来るんで、その最適状態から次回実行できるのも利点か
問題はメモリをそのままダンプするからクソデカバイナリになることか…

94 :名無しのひみつ:2021/01/22(金) 04:05:43.91 ID:FZWsOhMw.net
最速プログラムを生成する言語は理論上はcとかasとかになるんだろうけど、実際に最速プログラム吐く言語はfortran>>cl=ocamlの超高級言語三強という事実

粒度の細い制御構文山ほど積んで一切ループ使わないスタイルのfortranの有名ライブラリは個別に挙げきれないほど、(2008以降)
lispはダントツ最速regrexエンジンのccpre
型orientedで最適化するocamlはfftwとか

ところであんま触らないけど同じMLファミリーで一番有名だろうHaskellはなんで遅いんだろね?

95 :名無しのひみつ:2021/01/22(金) 04:13:12.59 ID:XekR/EZF.net
最適化があまりにも進みすぎると、実際の計算をせずに答えを出すからな。

96 :名無しのひみつ:2021/01/22(金) 04:20:27.83 ID:6bE7CcE+.net
>>19
・・・いや、コード読んでる時って書いてるだろ?

日本語読めることと理解できるかってことはやっぱ別だよな

97 :名無しのひみつ:2021/01/22(金) 08:03:15.15 ID:XekR/EZF.net
ニュートン力学を完全に理解していても、建築の設計ができるわけではない。

素粒子理論をマスターしていたとしても、材料化学のすべてを把握したことには
ならない。

音楽の楽譜の読み方書き方を知っていても、それでもって作曲ができることには
ならないし、たとえメロディを作曲できたとしても、それをオーケストラの総譜に
仕上げるのはまた別の技量が要る。

英語の辞書と文法書を持ちあるいは完全に暗記していたとしても、
それでもって英語の小説、契約書、などが書けるわけではない。

絵が描けてマンガのキャラクターや背景が描けたとしても、それでもって
単行本何冊分の筋の通った長編マンガが書けることを意味しない。

プログラムの文法と各機能の意味を理解していたとしても、
それだけでは仕様書を満たすプログラムが書けることにはならない。

総レス数 97
31 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★