トップページ⇒tech
1001コメント247KB

プログラミング雑談スレ

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2013/03/21(木) 00:08:44.24
プログラミングに関する雑談スレッドです。
0809デフォルトの名無しさん2013/11/10(日) 09:10:44.26
昔Cで作ってた業務系の24時間稼動してるシステムが、たった一つのchar配列のfree忘れで
low memory異常終了して大変なことになった記憶がある。
GCさんがいてくれればまた違っただろう
0810デフォルトの名無しさん2013/11/10(日) 09:23:07.69
GCの挙動をもっと詳細に制御できるような仕組みがあれば違ってくるのかなぁ
今のはほぼお任せって感じだし
0811デフォルトの名無しさん2013/11/10(日) 09:31:09.22
GCでも参照残ってたらどんどんメモリ食ってくから
0812デフォルトの名無しさん2013/11/10(日) 09:31:24.28
GCって、なんですか?
0813デフォルトの名無しさん2013/11/10(日) 09:39:10.32
人生って、なんですか?
0814デフォルトの名無しさん2013/11/10(日) 09:51:20.07
強制ではないけどGCに今してとお願いする手段ならだいたい用意されてるでしょ
細々GCさせない方法は自分でバッファ配列をとってそこに記録する
この2つでそれなりにコントロールできる
0815デフォルトの名無しさん2013/11/10(日) 10:26:18.43
>>814
>GCに今してとお願い
そのお願い、いつも嘉納されるのでしょうか?
0816デフォルトの名無しさん2013/11/10(日) 10:57:47.48
今さらっと検索した限りでは
java(System.gc)と.NET(System.Gc.Collect)は
呼ばれたらその場で最大限の努力はしてくれるらしい
まあ回収したあとファイナライザが呼ばれて
実際に解放されるまでに間が開く可能性はあるだろうけど
0817デフォルトの名無しさん2013/11/10(日) 11:55:23.25
対話型のデザインだと一仕事終わった後にGC呼びたくなる
どれだけ意味があるのか分からないが気持ち的に
0818デフォルトの名無しさん2013/11/10(日) 12:31:38.37
>>808
人間の屑の部分は否定しないわけだな、正直で結構なことだ
0819デフォルトの名無しさん2013/11/10(日) 13:44:37.03
>>818
ま,あんとほどではないとは内心思っているが口に出しては言わないだけなこと,おっと書いてしまったがね
0820デフォルトの名無しさん2013/11/10(日) 14:55:24.20
>ま,あんとほどではないとは
0821デフォルトの名無しさん2013/11/10(日) 14:57:09.52
またQか・・・
0822デフォルトの名無しさん2013/11/10(日) 17:36:10.42
ガベージの循環参照が発生している
こういう時はマークアンドスィープだ
0823デフォルトの名無しさん2013/11/10(日) 17:57:30.70
M&Sでも言語を跨ぐ循環参照には弱参照を用いるしか無い
0824デフォルトの名無しさん2013/11/10(日) 19:46:48.10
>>808
歴史というものを全然知らんのな。
OO のほとんど最初からあっただろう。
後から GC がやってきて OO を救ったみたいな言い方やめてくれる?
0825デフォルトの名無しさん2013/11/10(日) 20:17:08.47
そのとおりだと思うが
まあ吠える奴ほど無知なパターンかなこりゃ
0826デフォルトの名無しさん2013/11/10(日) 20:19:25.74
>GC のおかげでOOがどれほどやりやすくなったか

えっ…C++なんかはGC無くても全然OOPできてまつよ?(´・ω・`)
0827デフォルトの名無しさん2013/11/10(日) 21:03:56.19
>>824
GC無しが前提だとC++のようなクズ言語になるだろ。
0828デフォルトの名無しさん2013/11/10(日) 21:10:57.91
クズ言語…プログラマーレベル高
ゆとり言語…プログラマーレベル低
0829デフォルトの名無しさん2013/11/10(日) 21:45:08.74
リソース管理は難しいけどやらないとトラブルを起こす率が高いからなぁ
システムをなるべく止めないようにGCを上手く機能させられるようにするしかない気がするわ
手動でやるにも限度がある
0830デフォルトの名無しさん2013/11/10(日) 22:00:24.96
V8のGC読むと凄く参考になる
0831デフォルトの名無しさん2013/11/10(日) 22:34:29.65
>>824
smalltalk, CLOS が思いつくところだけれも、やっぱり Java が嚆矢かと
0832デフォルトの名無しさん2013/11/10(日) 22:40:29.67
>>829
今まで携わったどんなシステムでどんなトラブルがGCによって引き起こされた?
0833デフォルトの名無しさん2013/11/10(日) 22:42:42.82
客に文句を言われる
0834デフォルトの名無しさん2013/11/11(月) 01:09:52.23
GCってなあに?
0835デフォルトの名無しさん2013/11/11(月) 01:10:44.07
げーむきゅーぶ
0836デフォルトの名無しさん2013/11/11(月) 02:05:26.81
>>819
もう怒ったぞう!
____ ___                
 ̄ ゙̄i゙i  ゙̄i゙i           / ̄|| ̄|| ̄||\
    ゙i゙i___゙i゙i/ ̄ ̄ ̄ ̄ ̄ ̄\  ||  ||  |  |\
  / ゙i゙i   ゙i゙i\  ∧  ∧   ∧|  ||  ||  ||  |/
 / ◯   ◯  |_//゙i゙i//゙i゙i //゙i゙i_||_||_||/
 |_/|\__/// ̄/゙i゙i  ゙i゙i  ゙i゙i  
  ワ   ワ // // // ゙i゙i  ゙i゙i  ゙i゙i 
       // // //  ゙i゙i  ゙i゙i  ゙i゙i
0837デフォルトの名無しさん2013/11/11(月) 05:28:01.17
ここまでグラチャンなし
0838デフォルトの名無しさん2013/11/11(月) 11:52:46.76
大学のプログラムの授業で先生が
「#include "stdio.h"とありますが、これはおまじないなので気にしないで下さい」
って言ってて、おいおいこの先生大丈夫かよ、ちゃんと教えろや・・・。って思ってたけど
教える側になると素人にはおまじないって以外教えようがない
0839デフォルトの名無しさん2013/11/11(月) 11:56:33.02
今時の言語は○○するには import ○○ が必要って言ってるだろうから
printfするにはstdioが必要でいい気はする
0840デフォルトの名無しさん2013/11/11(月) 12:01:54.94
最初の最初ね。

プログラムではこんな事ができます。
↓
hello worldを出力するだけのプログラムを実行して見せる
↓
それではソースを見てましょうか
↓
printfするためにstdioが必要です。

じゃまるで伝わらないと思う
0841デフォルトの名無しさん2013/11/11(月) 12:04:03.55
まず職業を選択します(#include/import)
使う呪文を選びます(printf)
0842デフォルトの名無しさん2013/11/11(月) 12:08:25.30
そんな言語で最初の最初を教える方が悪い
BASICとかJavaScriptくらいでやれ
0843デフォルトの名無しさん2013/11/11(月) 12:09:35.43
せんせー左側のこの10ってなんすか?
それはおまj
0844デフォルトの名無しさん2013/11/11(月) 12:09:51.98
#include <stdio.h> /* printf を使用するために必要な準備 */
とソースに書いておけばおまじないと説明してもよい
素質のある奴はそれで前に進める

だが "stdio.h" と <stdio.h> の違いがわからないのは大丈夫じゃないぞ
0845デフォルトの名無しさん2013/11/11(月) 12:21:16.33
「シャープから始まってるのはちょっと特別なことしてます。
コンパイルって言って、このソースコードは最終的に実行できる形式になるんですが、
あるでしょ?ダブルクリックするとうごくアプリケーションみたいなやつです。
そうやってコンパイルする前に、プリプロセッサってのが動いてソースコードに手をくわえます。
この例でいうと、includeってかいてますよね。意味だいたいわかりますよね。
これ、指定したファイルを読み込んで置き換えます。
だからみなさんが書いたソースのその一行は、stdio.hっていうファイルの中身に置き換わります。
それでね、stdio.hっていうファイルには、いろいろ役に立つものが書いてあり、
画面に文字を出すためのprintfなどもそこに書かれてるわけです」

学生 (;^ω^)…。
0846デフォルトの名無しさん2013/11/11(月) 12:29:17.30
>>844
やばい<>だったw
ちがうんだ!昔の記憶だから忘れてただけなんだ!
0847デフォルトの名無しさん2013/11/11(月) 12:31:21.65
>>838
#include <stdio.h>
じゃないところがまだあるのか
0848デフォルトの名無しさん2013/11/11(月) 12:31:48.34
おまじないって誰が言い始めたのかわからんけどおまじないって言うから悪いんであって
後で説明しますで解決する
0849デフォルトの名無しさん2013/11/11(月) 12:33:56.82
#include <stdio.h>;
int main(void)
{
printf("Hello World!");
return (0);
}

6行中5行について、後で説明します
0850デフォルトの名無しさん2013/11/11(月) 12:43:06.75
生徒「あの波カッコ閉じって別に時間を割くほど重要なもんなのか?」
0851デフォルトの名無しさん2013/11/11(月) 12:46:08.94
波カッコを舐める奴はスコープに泣かされることだろう
0852デフォルトの名無しさん2013/11/11(月) 12:51:04.50
まあ "" でも探す場所が増えて順番がかわるだけで、尾同じものが手元に無ければ動くけどな。
0853デフォルトの名無しさん2013/11/11(月) 12:52:51.84
画面に文字を表示させるためには、筆箱からペンを取り出して字を書かなければいけません。

include<stdio.h>

は、「stdio.hという名前の筆箱をinclude(机に出)しておけ」、という下準備なのです。

じゃダメなのかな?
0854デフォルトの名無しさん2013/11/11(月) 12:54:11.81
比喩はイカンど!ワンワンニャーニャー!
0855デフォルトの名無しさん2013/11/11(月) 12:59:29.48
スタジオヘッダとか言っている奴にはちょっとひいた。
0856デフォルトの名無しさん2013/11/11(月) 13:00:32.39
いやスタンダード入出力って意味を知るまでは、みんなスタジオとかスタディオって呼ぶでしょ
0857デフォルトの名無しさん2013/11/11(月) 13:05:43.96
「すたんだーどあいおー、ぷりんとえふ、
えむあろっく、りあろっく、しーあろっく、
すとりこんぺ、めむこぴー、あーぐしーあーぐぶい」

学生 (;^ω^)…。
0858デフォルトの名無しさん2013/11/11(月) 13:10:53.20
学生 (^ω^) 「チャー」
先生「キャラね」
0859デフォルトの名無しさん2013/11/11(月) 14:13:33.93
一番最初はインタプリタのがいいと思う
0860デフォルトの名無しさん2013/11/11(月) 15:33:39.66
プロトタイプベースの新しい言語が出ないのは何故だと思いますか?
0861デフォルトの名無しさん2013/11/11(月) 15:51:04.95
>>827
それが何で俺へのレスなの?
C++ なんて後発の OOPL じゃん。

>>831
嚆矢って辞書で調べてみろよ。
OOP が広く使われるようになったのが Java の普及によるものだと言うならその通りかもしれんが、嚆矢にそんな意味はない。
俺には Java をけなすようなつもりはないが、お前みたいな馬鹿が擁護すると Java 使いはバカばかりだとか思われるからやめた方がいいんじゃないか。
0862デフォルトの名無しさん2013/11/11(月) 15:58:00.02
>>860
プロトタイプベースが古いからじゃね?
0863デフォルトの名無しさん2013/11/11(月) 16:31:21.23
>>860
JavaScriptがあるから
他の言語もプロトタイプベースを採用しようとするけど
やっぱ熟れてないから難しいみたい
0864デフォルトの名無しさん2013/11/11(月) 16:56:05.87
サムソンに貢献した日本人技術者ランキング

http://diamond.jp/mwimgs/7/9/600/img_79a82155b9c67380da2dc9d9f455ed48204182.jpg
0865デフォルトの名無しさん2013/11/11(月) 17:00:33.78
最初に覚える言語として一番おすすめできないのがJavaScript
アバウトな文法とアバウトな型チェックと膨大な標準外の覚える事で、ワケワケメになることうけあい
0866デフォルトの名無しさん2013/11/11(月) 17:09:54.26
そのアバウトさがアバウトに覚えるのにいいのよ
0867デフォルトの名無しさん2013/11/11(月) 17:16:30.22
アバウトというが仕様で厳密に決まってるし
実装差があるのはDOMであってJSは関係ないと思うが
0868デフォルトの名無しさん2013/11/11(月) 17:17:03.76
>>844
おまじないって教えるってバカにされるけど、
じゃあ、いきなりプロトタイプとかマクロとか教えるのかって感じだわな。
なぜプロトタイプが必要かってところまで教えようとすると、分割コンパイルが
どうとかて話になるし。

初心者向けに「printf()やらEOFを使うのに必要です」程度の簡単な説明なら、
もう「おまじない」でもいいじゃんって感じだし。
0869デフォルトの名無しさん2013/11/11(月) 17:19:43.68
教えられる側のレベルによる。
#includeにひっかかって一歩も前にすすめない頭が硬直していて可哀想な人もいる。
0870デフォルトの名無しさん2013/11/11(月) 17:38:44.81
OpenGLの「おまじない」の多さに比べたら1行や2行屁でもないだろ
0871デフォルトの名無しさん2013/11/11(月) 17:50:02.73
もう3Dはエンジンかライブラリ使ってしかやらないって決めたんだ
2Dゲームでさえ数学数学で大変だったのに
0872デフォルトの名無しさん2013/11/11(月) 19:22:33.24
畑の違う人たち相手にちょっとしたC言語の講習会をやった事がある
そのときは
・この行はprintfを使うために必要です、後々説明します
・自前で関数を作ってみましょう・ではprintfの関数宣言はどこにあるでしょう?
ってな段取りでヘッダファイルの説明に結び付けたけど
すぐに理解してくれた人は半分いるかいないか、って感じだった
0873デフォルトの名無しさん2013/11/11(月) 19:59:09.03
そもそも今はもう学習用の言語があるからそっちの方がいいな
小学生はScratch
中学生以降はPython

プログラミング知らない人に教えるかC言語知らない人に教えるかじゃ全然違う
CはBASICはすでに知ってたから
0874デフォルトの名無しさん2013/11/11(月) 20:30:31.64
BASICで非構造化プログラミングを存分に味わってほしい。
0875デフォルトの名無しさん2013/11/11(月) 21:18:54.10
>>865
でも、初心者にロジックを試行錯誤させるためには、ある度の視覚的な動きのあるものを簡単に作れた方がいい。

作っているものがどういうものなのか、わかんないとすぐあきちゃうぽ。
0876デフォルトの名無しさん2013/11/11(月) 21:42:18.46
自分の頃は携帯でブログ作るのが流行ったから
それでHTML、JavaScriptと行き易いなと感じたけど
今の子ってどうなんだろうね

まあどんな言語でもやる気があれば覚えられるから、
JavaScriptは動く環境が魅力的でモチベーションを産みやすいって点で優秀だと思う
0877デフォルトの名無しさん2013/11/12(火) 00:12:47.69
いまどきはHTMLなんて書かないからね
ブログサービスに文字列ちょいちょい書いて完了ですわ
Web1.0を経験してない子供達は、HTMLだけで書いたしょっぱいホームページなんて作りたがるわけもない
0878デフォルトの名無しさん2013/11/12(火) 03:33:18.75
>>861
>OOP が広く使われるようになったのが Java の普及によるものだと言うならその通りかもしれん
というのであれば自分の意見に違わないので問題はない

>嚆矢にそんな意味はない。
嚆矢というのは、飛翔時に大きな音を出す仕掛けがしてある矢
Java という矢がそれまで lisp 界隈でひっそりと使用されていたGCを喧伝したと思っているのだが
0879デフォルトの名無しさん2013/11/12(火) 17:09:33.49
馬鹿なんだから黙ってればいいのに。
0880デフォルトの名無しさん2013/11/12(火) 18:06:42.65
嚆矢とか喧伝とか、いかにも中二病が使いそうな単語だな
0881デフォルトの名無しさん2013/11/12(火) 18:09:27.26
前田ブロックage
0882デフォルトの名無しさん2013/11/12(火) 18:09:42.28
Java という矢がそれまで lisp 界隈でひっそりと使用されていたGCを喧伝した
謎の半角スペース以外は綺麗な文章だ
0883デフォルトの名無しさん2013/11/12(火) 18:24:02.05
主婦を集めて「動くホームページ作ろう!」って言えばウザイJavascript厨を
一掃できるよ。
0884デフォルトの名無しさん2013/11/12(火) 18:33:52.65
>Java という矢がそれまで lisp 界隈でひっそりと使用されていたGCを喧伝した

これは事実と違う罠
0885デフォルトの名無しさん2013/11/12(火) 18:35:24.40
日本でどの言語が流行るか決めてるのはマナタンなんだよね。
0886デフォルトの名無しさん2013/11/12(火) 18:39:03.57
GCってなあに?
ジャイアントコーン?
0887デフォルトの名無しさん2013/11/12(火) 18:49:33.18
CGと間違えたんじゃない?
0888デフォルトの名無しさん2013/11/12(火) 19:00:52.21
グアニル酸シクラーゼだろ普通に。
0889デフォルトの名無しさん2013/11/12(火) 19:03:51.47
GCの場面なんてBASICでもsmalltalkでも普通だった気が
0890デフォルトの名無しさん2013/11/12(火) 19:12:34.29
構造体とか参照の配列とか組み合わせて使えなければ意味ないんやで
0891デフォルトの名無しさん2013/11/12(火) 19:30:02.29
>>886
graphics context
0892デフォルトの名無しさん2013/11/12(火) 19:41:16.99
>>891
グラフィックの扱いを簡単にするオブジエクトかなにかかな、ありがとう
0893デフォルトの名無しさん2013/11/12(火) 19:58:59.34
グラフィックコンテクストはWin32APIの画面描画関係でよう使ってた気がする
懐かしい
0894デフォルトの名無しさん2013/11/12(火) 20:24:07.90
騙された
0895デフォルトの名無しさん2013/11/12(火) 23:17:35.72
そもそもGCの無い言語のほうが珍しいだろ
0896デフォルトの名無しさん2013/11/12(火) 23:26:22.75
>>895
逆にGCのある言語って何だよ?
0897デフォルトの名無しさん2013/11/13(水) 00:52:41.86
おにぎり一個でも買えます。
0898デフォルトの名無しさん2013/11/13(水) 01:35:09.55
GCってガベージコレクションか
耐えきれずついググってしまった
0899デフォルトの名無しさん2013/11/13(水) 03:41:34.13
game cubeを知らない世代か・・・
0900デフォルトの名無しさん2013/11/13(水) 06:47:15.09
>>884
では ruby が先ということにしたいのか?
0901デフォルトの名無しさん2013/11/13(水) 08:15:37.56
GCなんか、言語に備わってるんじゃなくて、VMとかの実装に備わってるものだろ
0902デフォルトの名無しさん2013/11/13(水) 08:51:56.19
>>901
luaとかDとかは?
0903デフォルトの名無しさん2013/11/13(水) 09:12:41.17
>>902
VMじゃなくて言語仕様でGCが言及されてるのはそれくらいか?
いずれにせよ少数派だか
0904デフォルトの名無しさん2013/11/13(水) 09:44:36.07
GCの種類まで言及してなくても
弱参照とかWeakMapとかある次点でGC前提でしょうに
0905デフォルトの名無しさん2013/11/13(水) 10:05:51.98
>>901
それはおかしい。
GCを前提とした言語にはdeleteが無い。
0906デフォルトの名無しさん2013/11/13(水) 10:32:38.99
漏れの知ってる範囲だけでも
D とか Python にも delete はある
0907デフォルトの名無しさん2013/11/13(水) 11:08:18.12
.NET の GC は危険だ。
ネイティブアプリ開発に戻った時にメモリリークしまくる。
0908デフォルトの名無しさん2013/11/13(水) 11:16:15.25
スタックとヒープってどう違うの?
スタックソートとヒープソートで何かかわる?
レス数が900を超えています。1000を超えると表示できなくなるよ。