トップページ⇒tech
119コメント28KB

C言語ライクな文法のコードをみると安心する

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/03/15(木) 21:20:44
吐き気をもよおすのはPerl
開発したやつアホだろ
0002デフォルトの名無しさん2007/03/15(木) 22:01:28
Cは醜い。
sexp最高。
0003デフォルトの名無しさん2007/03/15(木) 22:20:19
C#が最も美しい。
0004デフォルトの名無しさん2007/03/15(木) 22:23:09
pythonのコードを見ると勃起する
0005デフォルトの名無しさん2007/03/15(木) 22:25:14
見た目と制御構造が一致してるpythonはまさに最強。
0006デフォルトの名無しさん2007/03/15(木) 22:38:52
whitespace で幸せになれるよ
0007デフォルトの名無しさん2007/03/16(金) 20:47:37
美しいといえばRubyだよ。
なんたって言語オタクが自分の理想を追い求めて趣味で作った言語だからな。
0008デフォルトの名無しさん2007/03/16(金) 20:54:09
>>7
ということはRubyって実はJavaみたいな言語だったんだね!
0009デフォルトの名無しさん2007/03/17(土) 03:12:22
Prologに未来の言語を感じる。
0010デフォルトの名無しさん2007/03/18(日) 10:55:04
Perl なんてどうせ使い捨てだから、むしろあの文法のほうが良い
0011デフォルトの名無しさん2007/03/20(火) 18:30:49
elsif
(;´д`)開発者はこれでタイピングの手間が一文字へったYOとか悦に入ってるんかな
0012デフォルトの名無しさん2007/03/20(火) 18:33:16
C Shell があれで C 言語ライクな構文だと言うから困る。
0013デフォルトの名無しさん2007/03/20(火) 19:18:17
そうか?
cのコードの読みやすさなんてよくできたマクロアセンブラのコード以下だと思うがマジで。

例えばコメント。
アセンブラ踏襲して';'使うのなら素直に;から改行コードまではコメントでいいじゃん。

/* comment /*

だの

// コメント

だの、視覚的に無駄にかさばって読みにくくてしかたがないよ。

ブロック記号{}の間抜けさも言うまでもない。
0014デフォルトの名無しさん2007/03/20(火) 19:22:13
>アセンブラ踏襲して';'使うのなら
寝言は寝て言え。
0015デフォルトの名無しさん2007/03/20(火) 19:25:10
いやcの;はアセンブラのコメント記号が行末に付けられることからの連想でしょ明らかに
0016デフォルトの名無しさん2007/03/20(火) 19:30:07
begin
end

とか見てると食欲が失せる
0017デフォルトの名無しさん2007/03/20(火) 19:30:14
まあcが好きな人はcのコメントの醜さはフリースタイルの代償だ、って擁護するんだろうけどね。
例えば長い引数の関数で引数の後ろにコメントを付けて改行するような書き方のようなさ。

確かにあれは便利だが、だがしかしもっとスマートな方法がほかにあっただろう。
0018デフォルトの名無しさん2007/03/20(火) 20:28:41
誰も擁護しないだろ。
//が導入されれてもだれも文句言わないし。
0019デフォルトの名無しさん2007/03/20(火) 21:45:41
/* こういうコメント記号は */
/* “目立つ”ことも重要なんだろうな。 */
/* ASCII文字圏ではコードの中に */
/* コメントが埋もれないように */
/* あえてウザい強調マークっぽく */
/* コメントアウトしたいのではないかと。 */
0020デフォルトの名無しさん2007/03/20(火) 22:24:03
>>15
いいえ。英語の勉強をしてから出直してみてください。
0021デフォルトの名無しさん2007/03/20(火) 22:28:49
パスカルは(* comment *)だっけ? アレよりはマシだな。
0022デフォルトの名無しさん2007/03/20(火) 22:31:03
コメント最強はINTERCAL
0023デフォルトの名無しさん2007/03/20(火) 23:24:41
そもそもコメントのためのデリミタなんて必要ないんだよ。

賢いコンパイラなら、内容を解析してコメントの範囲を自動的に判断して、字句解析から除外してくれる。
0024デフォルトの名無しさん2007/03/20(火) 23:28:56
賢くないプログラマが賢いコンパイラには
ゴミにしか見えないようなコードを書くからなあ。
0025デフォルトの名無しさん2007/03/21(水) 08:40:55
C++の文法は汚すぎてコード打つ気にもならない。
大文字多用とか見てらんない。
0026デフォルトの名無しさん2007/03/21(水) 09:19:14
それはコーディングスタイルの問題だろ。
0027デフォルトの名無しさん2007/03/21(水) 12:00:42
PerlはC言語ライクにしたってラクダ本に書いてあったのに!
0028デフォルトの名無しさん2007/03/21(水) 12:00:57
>>23
コードの一部をコメントアウトしたい時は #if 0 一択ですか?
0029デフォルトの名無しさん2007/03/21(水) 13:38:35
>>28
コードの一部をコメントアウトしたいときに、// や /* */ を使うことは保守性を損なうから推奨できない。
0030デフォルトの名無しさん2007/03/21(水) 13:50:24
経験上「#if」がソース中に20個もあると
保守する気すらなくなるくらい読めんくなるから
「#if 0」コメントアウトは原則ありえんな
0031デフォルトの名無しさん2007/03/21(水) 13:54:54
>>30
素朴な疑問だが、「ソース中20」というのは何行くらいのソースに対しての数字?
0032デフォルトの名無しさん2007/03/21(水) 14:01:33
あんまり関係ないw

20000行の????.cファイルに対し
#ifが20個でも0個でもどっちみち同じみたいな

逆に極端に短いのに#ifだらけも、論外だし
0033デフォルトの名無しさん2007/03/21(水) 14:36:32
グローバル領域にif文とか置けないものなあ。
やっている事はそれに近いのだけど。
0034デフォルトの名無しさん2007/03/21(水) 15:09:55
Dのstatic if
0035デフォルトの名無しさん2007/03/21(水) 16:00:29
とりあえずbeginとかendとか打つのめんどいし見にくい中括弧でおk
0036デフォルトの名無しさん2007/03/21(水) 16:34:31
>>34
おお、そんな文法があるのですか。
条件コンパイルの文法は、また別個にあるようですが。
0037デフォルトの名無しさん2007/03/21(水) 18:38:16
>>15
明らかなのは、お前の無知さ加減。
0038デフォルトの名無しさん2007/03/21(水) 18:45:40
それじゃあ博識の37クンに本当の由来を教えていただきましょうかね。
いや、できないなら無理することないんだよw
0039デフォルトの名無しさん2007/03/21(水) 18:46:58
>>38
>20
0040デフォルトの名無しさん2007/03/21(水) 18:48:55
最近どうも、いろんなスレで>>38みたいなのが増えたなぁと思ってたけど、
もう春なんだな。
0041デフォルトの名無しさん2007/03/21(水) 18:50:40
御託はいいから本当の由来を言ってみれば?
0042デフォルトの名無しさん2007/03/21(水) 19:01:25
Cの文がセミコロンで終わる一番直接的な理由はBがそうだったからだろ。
まあ今度はBの文がセミコロンで終わるのはなぜかという話に移るだけだが。
0043デフォルトの名無しさん2007/03/21(水) 19:06:03
Semicolon;

From Wikipedia, the free encyclopedia;
http://en.wikipedia.org/wiki/Semicolon

A semicolon is a punctuation mark;

The Italian printer Aldus Manutius the Elder established the modern English practice
of using the mark to separate words opposed in meaning, and to mark off interdependent statements;
The earliest general use of the semicolon in English was in 1591. Shakespeare's sonnets have semicolons;
Ben Jonson was the first notable writer from England to use them systematically;

Exploit a software bug in a web browser such that the code makes the browser do something
unexpected, including crash, read or write local files, propagate a virus or install spyware;

In computer programming, the semicolon is often used to separate multiple statements
(for example, Pascal, SQL and perl); In other languages; semicolons are required
after every statement (such as in PHP, Java, and the C family); Other languages, for example,
some assembly languages and LISP dialects, may use semicolons to mark the beginning of comments;
0044デフォルトの名無しさん2007/03/21(水) 19:12:21
>>43
本物の馬鹿だな
自分で読んでもいない(というより読めないんだろうけど)のに無理しちゃってw
0045デフォルトの名無しさん2007/03/21(水) 19:21:02
くだらね
0046デフォルトの名無しさん2007/03/21(水) 19:21:45
セミコロンがアセンブラのコメントからてきるって説より、英語からきてるって説のほうが自然な感じ。
0047デフォルトの名無しさん2007/03/21(水) 19:26:59
っていうか、アセンブラの;の用法こそ英語の一般的な用法だっつーのw

>>43リンク先みても分かると思うけど、セミコロンの一般的用法っていうのは
接続詞的な使い方であって、何かを列挙するときに"stronger commma"として
使われることなんてあんまりないでしょ。
0048デフォルトの名無しさん2007/03/21(水) 19:27:21
Unixの記述言語として産まれたC言語のセミコロンの用法は
Multicsの記述言語だったPL/Iから持ってきたもの
0049デフォルトの名無しさん2007/03/21(水) 20:40:59
>>21
(*^o^*)
0050デフォルトの名無しさん2007/03/21(水) 20:41:56
つーかまじめな話、そろそろ「C言語ライクな文法」の話に戻すか、
「セミコロンに萌えるスレ;」か何かに移行しませんか?
0051432007/03/21(水) 20:47:06
>>44
調べた中で最も内容が充実してたサイト(結局Wikipediaだったけど)から引用してやったのに、
なぜ馬鹿とか無理するなとかいわれにゃならんのか?
0052432007/03/21(水) 20:53:51
ああ、読めないとか無理とか言ってるのは引用元が英語だったからか。
日本語のほうにしとけばよかったのかな?

>>44の煽りの意図を誤解してた。すまん
0053デフォルトの名無しさん2007/03/21(水) 20:56:17
セミコロン
セミコロンは終端記号です

まで読んだ
0054デフォルトの名無しさん2007/03/21(水) 20:59:37
>>50
書かれてる内容はともかく terminator としての semicolomn というのは
C like 言語の大きな特徴で、構文に強い影響を与えてるから、さほど
スレ違いな話とは思わない。
0055502007/03/21(水) 21:09:25
>>54
まあ確かにスレ違いだとは思わないけどね。


どーでもいいが>>43の中に紛れ込んでる意味不明な段落は、リンク先にはないみたいだけど、ネタですか?
ブラクラ?
0056デフォルトの名無しさん2007/03/21(水) 21:11:22
ごめんうそこいた。
せみころんはくとうてんですだった
つってくる
0057デフォルトの名無しさん2007/03/21(水) 21:14:58
>>53
俺は、

セミコロン;
セミコロンはは句読点です;
イタリアンなプリンタ、アドルス

まで読んだぞ
0058デフォルトの名無しさん2007/03/21(水) 21:24:41
(´・ω・`)おまいら…
0059デフォルトの名無しさん2007/03/21(水) 21:24:56
(*^ー゚)b グッジョブ!!
0060デフォルトの名無しさん2007/03/21(水) 21:29:43
package Klass;
sub new{ # コンストラクター
my $pkg = shift;
return bless { @_ }, $pkg;
}
sub meth{ # アクセサー
my $self = shift;
$self->{meth} = shift if @_;
$self->{meth};
}


う、うつくしい、うつくしすぎる・・・
0061デフォルトの名無しさん2007/03/21(水) 21:46:29
そういう汚い定型的な処理は既存のモジュールを使うのが定石
0062デフォルトの名無しさん2007/03/21(水) 22:20:50
>>60
汚ねえーーーーーーーーー
0063612007/03/21(水) 22:30:07
package Klass;
use base qw(Class::Accessor);
Klass->mk_accessors(qw(mesh));
0064デフォルトの名無しさん2007/03/21(水) 22:32:39
>>60 とか見ると改めて思う。
PerlってCライクな言語なのだなぁって。
0065デフォルトの名無しさん2007/03/21(水) 22:43:44
Perlのコードを見るとなんだか心が落ち着くよね。
0066デフォルトの名無しさん2007/03/21(水) 22:52:05
むしろCライクじゃないと感じたが。
0067デフォルトの名無しさん2007/03/21(水) 22:53:21
Perlのコードは見ると腹が立つ
でもラリーの話を聞いていたら、まぁ有りかなとも思う
C++のコードは見ると腹が立つ
ビアネルの話を聞いても怒りは収まらない
0068デフォルトの名無しさん2007/03/21(水) 22:55:27
>>66
面白そうな意見なので具体的に。
0069デフォルトの名無しさん2007/03/21(水) 22:58:04
行コメントが#
0070デフォルトの名無しさん2007/03/21(水) 23:19:33
>>69
bsh から引き継いだ仕様だね
スクリプト言語では Perl 以降 python も ruby も踏襲してる
#がコメントって bsh が最初なんだっけ?
0071デフォルトの名無しさん2007/03/21(水) 23:38:36
>>68
そんな変な事書いたかな?

識別子に$つけるところと、
連想配列があるところ、
記号つかった特殊変数マンセー(この例だと @_ だけだが)なところ。

むしろどの辺りがCっぽいのかが分からんかった。
どっちがいいとか悪いとかじゃなく、かなり違うなあと。
0072デフォルトの名無しさん2007/03/21(水) 23:40:33
しかしJavaも含めて more better C という状況はどうかな?と。
CはUnixというOSを作る為に生れ、UIはsmalltalkのOOを手本としてきた。
新しい環境には新しい概念を持った言語の登場とセットなのだが、
結局OSはUnix的なもので、UIはsmalltalk的なものしか無い。
もう40年も昔の話なのに。
0073デフォルトの名無しさん2007/03/21(水) 23:50:09
「的」の範囲が広すぎなんじゃないの。
0074デフォルトの名無しさん2007/03/21(水) 23:58:12
ハード的に可能になったことはあるがCやsmalltalkが産まれた時と
概念的に何か進歩している点って何がある?
0075デフォルトの名無しさん2007/03/22(木) 00:02:58
ない。
モジュール強度を高める方向にしか進んでない。

量子コンピュータが実用化されたら
新しいパラダイムも生まれるかも知れない。
0076デフォルトの名無しさん2007/03/22(木) 00:24:53
人類はいまだに車輪的なものばっか使ってるよね
0077デフォルトの名無しさん2007/03/22(木) 00:27:34
>71
いや他意は無くて捉え方は人それぞれだなぁと思ったのよ。
気を悪くしたなら謝ります。
挙げてくれた特徴にいくつかは bsh由来のもの。
larry wall 自ら言っている通りPerlは普及している様々な言語を
貼り合せて作ったものだが、>>71の差異を含めても尚、Perlってのは
Cの影響が色濃く残っているのだなぁというのが私の感想。
0078デフォルトの名無しさん2007/03/22(木) 00:36:33
>>77
噛み付くような書き方してスマソ。

多分、普段使用してるor関心を持つ言語の違いじゃないでしょうか。
私はJava/C#で書くことが圧倒的に多いので、
あれらいかにもCのスタイル真似しましたな言語に比べると
PerlはCに似てるとは思えないんですよね。

HuskellやSchemeな人から見たら、
Cっぽいなぁになるかも知れんです。
0079デフォルトの名無しさん2007/03/22(木) 01:34:49
>>78
噛み付くような書き方してスマソ。恐らくHugsのせいで間違えているんだとおもうが、正しくは「Haskell」な。
>>43に倣って意味もなく英語版よ(ry


Haskell (programming language)

From Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Haskell_%28programming_language%29


Haskell is a standardized purely functional programming language
with non-strict semantics, named after the logician Haskell Curry.
It has tremendous strength, and a tremendous lack of common sense and
understanding of social skills to go with it.
It is one of the more popular functional languages, and the lazy functional
language on which the most research is being performed.

A simple RPN calculator expressed with a higher-order function whose argument
f is defined in a where clause using pattern matching and the type class Read:

calc :: String -> [Float]
calc = foldl f [] . words
 where
  f (x:y:zs) "+" = y+x:zs
  f (x:y:zs) "-" = y-x:zs
  f (x:y:zs) "*" = y*x:zs
  f (x:y:zs) "/" = y/x:zs
  f xs y = read y : xs

汚ねえーーーーーーーーー
0080デフォルトの名無しさん2007/03/22(木) 01:49:52
CSSは中括弧やセミコロンあたりがC言語ライク
0081デフォルトの名無しさん2007/03/22(木) 02:48:03
PerlとCなんてティーガーとパンターくらい違う。
即ち全然似てないよ。
0082デフォルトの名無しさん2007/03/22(木) 03:01:35
ところで何でC言語ライクって言われてるの?
ライクC言語じゃないの?
英語詳しいエロイ人教えて。
0083デフォルトの名無しさん2007/03/22(木) 03:09:08
二語ではなくて〜likeという接尾辞をつけた一つの単語だから。
0084デフォルトの名無しさん2007/03/22(木) 04:54:33
なんとか-like、 ってのは別に和製英語じゃなくて普通の英語だと思うけどな。
前置修飾の形容詞的に扱われるとこらへんは日本語と一緒。

またまた英語版Wikipediaより用例を引用

--------------------
Another common set of C library functions are those used by applications
specifically targeted for Unix and Unix-like systems, ...

-----------------------
The C++ programming language was derived from C and is Bjarne Stroustrup's
answer to adding object-oriented functionality with C-like syntax.
0085デフォルトの名無しさん2007/03/22(木) 05:07:37
sage忘れ

余談だが俺はJavaの extendsとかimplementsとか、Pascalやその他のbegin〜endが嫌いだ。



0086デフォルトの名無しさん2007/03/22(木) 05:16:24
PerlはCのソースを見なくてもいきなり読み書きできた。
RubyはCのソースを見なければいきなりは読み書きできなかった。
つまり学習速度はPerl圧勝。
実行速度は言うまでもなくPerl圧勝。
結論付ければ、C言語ライクな文法を隠蔽しようとする努力は本当に余計なお世話だということ。
0087デフォルトの名無しさん2007/03/22(木) 05:25:58
>>86自身が「できた」「できなかった」という理由だけで「つまり圧勝」やら「本当に余計なお世話」やら
結論付けする>>86自体が本当に余計な存在だということが俺の結論。
0088デフォルトの名無しさん2007/03/22(木) 07:42:01
個人的にはPerlのlastとnextがどうしても馴染めない
0089デフォルトの名無しさん2007/03/22(木) 08:03:11
Ken○-webサイトのPerlソースみたら勃起した
0090デフォルトの名無しさん2007/03/22(木) 08:31:28
未だにPerl4時代のソースだっけか
0091デフォルトの名無しさん2007/03/22(木) 08:43:22
Perlは特殊変数使いまくられると何が何だか
まぁそこはRubyだって同じか。
0092デフォルトの名無しさん2007/03/22(木) 12:57:49
>>83-84
( ・∀・)つ〃∩ ヘェーヘェーヘェー 
ひとつ賢くなった。ありがとう。
0093デフォルトの名無しさん2007/03/22(木) 13:36:50
>>81が好きだな
とぼけやがって
0094デフォルトの名無しさん2007/03/22(木) 21:16:12
Tiger (OS X 10.4)とPanther (OS x 10.3)なんて、ほとんど一緒だろw
0095デフォルトの名無しさん2007/03/22(木) 21:37:56
戦車のことかと思ってた。
0096デフォルトの名無しさん2007/03/22(木) 21:52:11
Macはよー分からん
0097デフォルトの名無しさん2007/03/22(木) 22:00:14
>>94
よくMAC OSXの事って判ったな
マカーの間じゃティーガーなのか??
0098デフォルトの名無しさん2007/03/22(木) 22:13:11
Panther Tiger Leopard とドイツ戦車の名前が続いてるからじゃないか?
0099デフォルトの名無しさん2007/03/22(木) 22:24:56
ネコ科の名前と聞いていたが実際はドイツ戦車なのか。
0100デフォルトの名無しさん2007/03/23(金) 00:08:19
Macな人はObjective-Cのコードを見ると安心するのかね?
C++とか見るとムキーってなるのかね
0101デフォルトの名無しさん2007/03/23(金) 00:20:58
よーしじゃあお前X-BASICのコード見ても安心するんだなコノヤロウ。
0102デフォルトの名無しさん2007/03/23(金) 01:45:06
父のパソコンを越えろ。
0103デフォルトの名無しさん2007/03/23(金) 06:12:20
仕事だけのパソコンや、ワープロみたいなパソコンは、いらない。
0104デフォルトの名無しさん2007/03/23(金) 11:04:10
/*´Д`*/
0105デフォルトの名無しさん2007/03/23(金) 14:16:14
>>100
あれ見て安心するのって NeXT 以来のユーザくらいじゃあ…
0106デフォルトの名無しさん2007/03/23(金) 14:17:48
>>102
息子「つーかいい加減買い換えろよ、そのPenIIIマシン」
0107デフォルトの名無しさん2007/03/25(日) 00:22:11
wipe()
0108デフォルトの名無しさん2007/03/25(日) 10:29:53
ウチの父、オーバークロッカーなんです…
0109デフォルトの名無しさん2007/03/26(月) 04:59:49
>>102も>>103も懐かしすぎる
0110デフォルトの名無しさん2007/03/26(月) 07:22:54
>>102と>>103が入って>>101が入らない理由が分からん
0111デフォルトの名無しさん2007/03/26(月) 07:28:05
眠くて書き忘れたからで他意はないっす
0112デフォルトの名無しさん2007/03/26(月) 15:02:40
今時仕事だけのパソコンやら、ワープロみたいなパソコンやらって存在するのか?
0113デフォルトの名無しさん2007/03/26(月) 16:49:42
>>112
>今時仕事だけのパソコンやら
君が何を言っているのかわからないよ
0114デフォルトの名無しさん2007/03/26(月) 17:30:39
68は既にこの世に存在しないという事です。
0115デフォルトの名無しさん2007/03/26(月) 22:46:34
パソコン出来ない人は滅ぶと思いますとか言ってる企業は滅ぶと思います。
0116デフォルトの名無しさん2007/03/27(火) 06:25:53
>>102->>103
なつかしいwww
ベーマガの表紙めくるといつもこのフレーズ出てきたよなw
0117デフォルトの名無しさん2007/03/27(火) 23:41:23
俺はこの広告をI/Oで見てた
実家にまだあるかなあ……捨てられてるかも
0118デフォルトの名無しさん2007/03/28(水) 01:06:11
ツタンカーメンのマスクが思い浮かぶな
0119デフォルトの名無しさん2007/03/28(水) 10:11:36
>>118
うああ、俺も同じのが頭の中に浮かんでた!
■ このスレッドは過去ログ倉庫に格納されています