新言語を開発したい

■ このスレッドは過去ログ倉庫に格納されています
2010/05/30(日) 21:52:01
http://pc12.2ch.net/test/read.cgi/tech/1274015781/l50 の継続スレのかたわれです。
低水準言語にこだわる人は「低水準言語を開発したい」のほうへどうぞ。
356デフォルトの名無しさん
垢版 |
2012/11/10(土) 08:55:26.14
>>355
参照渡しができなくても
参照渡しをすることで作りたかったアプリは
別に参照渡しを使わなくても作れるということ。

目的は参照渡しではない。
真の目的はアプリを作ることだ。
2012/11/10(土) 09:00:15.79
>>356
Eclipseのリファクタリング機能がなくても
Eclipseで作りたかったアプリは
別にEclipseを使わなくても作れるということ。

目的はEclipseによるリファクタリングではない。
真の目的はアプリを作ることだ。
2012/11/10(土) 09:06:31.88
> 他の言語なら最近出てきたものが、
> Javaの世界には既にあったって驚くことばかりなんだけど。

他の言語なら昔からあったクロージャが
Javaにはまだ無いって驚くわ。
2012/11/10(土) 09:11:18.33
Javaの基本データ型に参照が必要だと感じたことはないけど、
プログラミングスタイルがそういうやり方に慣れちゃってるんだろうね。
必要なら、mutableなオブジェクト型を作って渡してやればいいだけだろうけど。
2012/11/10(土) 09:15:23.92
こんな感じ

class Reference<T> {
T val;
void set(T v) { val=v; }
T get() { return val; }
}

class Example {
public static void main(String[] args) {
Reference<Integer> ref = new Reference<>();
f(ref);
System.out.println(ref.get());
}

static void f(Reference<Integer> ref) {
ref.set(777);
}
}
361デフォルトの名無しさん
垢版 |
2012/11/10(土) 09:23:23.55
>>357
はいその通りですね。
もう一つの目的、早く作るってことができるのは
Javaだけです。
参照わたしはなくても、早く作れますのでw
362デフォルトの名無しさん
垢版 |
2012/11/10(土) 09:24:55.92
>>358
クロージャなくても作れるからねぇ。

戦術と戦略の違いかな。
戦略上重要なものがJavaの世界にはあふれている。
2012/11/10(土) 09:41:44.28
Javaでクロージャのようなことしたかったら、こんなかんじ。
interface Closure {
 void call();
}

class Example {
 public static void main(String[] args) {
  final Reference<Integer> ref = new Reference<>();
  f(new Closure() {
    public void call() {
     ref.set(777);
    }
   });
  System.out.println(ref.get());
 }

 static void f(Closure c) {
  c.call();
 }
}
2012/11/10(土) 09:45:04.96
>>363
そういうクロージャもどきが
いろんなライブラリで定義されてて
互換性がないところが生産性悪い

一方のライブラリで作ったクロージャを
別のライブラリに直接渡せないとか馬鹿かと
365デフォルトの名無しさん
垢版 |
2012/11/10(土) 09:46:04.93
>>363
クロージャの説明に、mainとかclassいらなくね?

お前の説明は無関係ない部分が多いんだよ。
2012/11/10(土) 09:48:22.78
>>364
直接渡せないなら
変換すればいいじゃない?

ほんの数行で書けるでしょ?
2012/11/10(土) 09:51:19.44
そうやって可読性を落とすからJavaはゴミなんだよ
2012/11/10(土) 09:53:29.72
>>364
どんなライブラリ使ってるの?
普通のJavaの流儀だとクロージャを使うことはないと思うけど、
自分の知ってる機能が言語に無いと不便に感じるかもしれないね。
2012/11/10(土) 10:05:28.89
Apache Commons
totallylazy
2012/11/10(土) 10:09:45.17
現状のJavaが優れているからといって、新言語をJavaに似せても
その言語が良い物になるかっていうと違うだろ
Javaの強みは圧倒的なコード資産とノウハウなワケで
それは新言語にそっくりコピーは出来ないんだから
2012/11/10(土) 10:30:11.67
http://e-words.jp/w/E58F82E785A7E6B8A1E38197.html

クラスへの参照を渡すのは参照渡しじゃないのか。
2012/11/10(土) 10:34:06.86
>>371
参照渡しじゃない。
それは「参照の値渡し」
2012/11/10(土) 10:53:13.97
言ってる意味はわかるけど渡された参照値経由で操作するなら
アクセスコスト的にもロジックの理解度的にも問題なくね?
2012/11/10(土) 11:11:47.24
似ていると理解するのは間違っていないと思うが、同じだと考えるのは危険でしょ
渡されてきた仮引数に代入しても
値渡しだからオリジナルは書き換わらない
2012/11/10(土) 11:26:24.59
同じだと書いてる人いるか?
2012/11/10(土) 11:30:03.24
違うものであっても結果的に同じことが出来るなら問題ない。
もっとも、それがとても大変な手間がかかるというのなら話は別だが。

大変な手間=タイピング時間 のことではないよ。
2012/11/10(土) 11:53:02.69
「ほげ言語」のパラドックス
http://practical-scheme.net/trans/beating-the-averages-j.html
2012/11/10(土) 13:32:57.76
>>377
前半をチラッと見ただけで書くけど、

俺は学習用の言語と
アプリを作る実用用(使い続ける、メンテナンスが必要なもの)の言語は
別の特性を持っているものだと考えている。
2012/11/10(土) 13:43:18.60
今、学習用の言語ってある?昔はPascalだったそうだけど。
2012/11/10(土) 13:44:39.22
LispとかPrologじゃないの。
2012/11/10(土) 15:42:49.70
今はほとんどJavaでしょ。
学習用も業務用もJava。

LispやPrologは毛色の違うのを学ぶ程度。
LispやPrologでカリキュラム組んでる大学ありますかね?
(探せば1つ2つ出てくるかもしれないが)
2012/11/10(土) 15:44:20.29
PythonやCを使ってる大学もあるよね。
この2つもどちらもカバーする言語。
2012/11/10(土) 17:24:41.42
>>381
20年前の時点で ML があった。勝手に無断出席しておけばよかった。
2012/11/11(日) 17:04:18.70
特定の言語でプログラミングを学習するということ自体、おかしい。
テンプレートとかは、その言語特有の記号や文字の並べ方を学習しないといけないけど。
アセンブラ言語の構文糖が全部揃ってる言語じゃないと、最適化やアルゴリズムは学べない。
2012/11/11(日) 17:16:01.00
Knuth先生かよw
386デフォルトの名無しさん
垢版 |
2012/11/11(日) 19:11:40.48
>>384
例えば普段Javaを使っている人が関数型言語を学ぶと、J
avaの技術力も上がる。文法もなにかも違うのにだ。

つまり、言語を学ぶと「文法」と「考え方」の2つを学ぶことになる。
文法は他の言語に応用はあまりできないが考え方は応用できる。

で実際のアプリ開発の話をすればどんな凄い言語であっても
0の状態からウェブフレームワークやデータベースアクセスライブラリや
HTMLパーサーを書けるわけじゃない。簡易的なものはできても
実用レベルに到達するにはすごく時間がかかる。

そういう点で実際にアプリを作るのであれば言語周辺技術が
発展している必要がある。量が多くて質も良くて互換性が高いものが良い。

最新の技術を取りれていくような言語は、変化が大きくそれ故に
互換性がなくなりがちになる。そうするといままで動いていたものが
動かなくなる。だからアプリ作成には向かない

学習用の言語とアプリ作成用の言語は、言語が目指す目的が違っている
だから学習用とアプリ作成用の言語は違うものになる。
2012/11/11(日) 22:25:04.19
Java製のデータベースサーバーってどんなのがあるの?
388デフォルトの名無しさん
垢版 |
2012/11/11(日) 23:27:30.88
いきなり何の話だ?
2012/11/11(日) 23:47:35.64
そもそもJavaは「サーバを作るための」言語ではない。
390デフォルトの名無しさん
垢版 |
2012/11/12(月) 00:03:21.61
最近はJavaはウェブサービスを作るのによく使われてるね
2012/11/12(月) 01:54:04.39
「サーバソフトウェア」を作る言語ではない。
392デフォルトの名無しさん
垢版 |
2012/11/12(月) 02:20:38.81
だからなんなんだよw
アセンブラだってサーバー作る言語じゃねーだろ。
2012/11/12(月) 02:42:28.52
馬鹿には無理
2012/11/12(月) 05:51:54.94
簡易的なものはできても
実用レベルに到達するにはすごく時間がかかる。
だからJavaはデータベースサーバー作成には向かない。
2012/11/12(月) 09:55:14.04
> 実用レベルに到達するにはすごく時間がかかる
言語関係なくね
2012/11/12(月) 10:52:39.18
学習用の言語とアプリ作成用の言語は、言語が目指す目的が違っている
だから学習用とアプリ作成用の言語は違うものになる。
2012/11/12(月) 10:53:49.45
Javaで書いたDBあるよ。当たり前だけど。
2012/11/12(月) 17:10:48.70
全ての機能が備わってる←低スペックCPU向け or 学習向け

いくつかの機能が無い←高スペックCPU向け or 大規模アプリ制作向け
2012/11/12(月) 21:20:30.27
>>386
学習用、の言語をいくつか教えてください。なんだか行き詰った感じを打開したいです
はじめての言語は pascal, c/c++/java をちょとだけかじりました、z80/6809/i8086 ならなんとか、他はしりません
2012/11/12(月) 21:32:07.86
>>399
つ LEGOマインドストーム、プログラミン
2012/11/12(月) 21:33:48.71
学習用ってか、教育用だろうね
2012/12/09(日) 23:33:16.35
言語を開発するには、たとえば awk ぐらいの言語を開発するには
どんな本を読めばいいの?
2012/12/10(月) 00:12:07.81
コンパイラコンパイラ
2012/12/10(月) 00:14:43.08
ぐぐってみればわかるよ
2012/12/15(土) 13:08:39.41
>>402
素人が本を読んでも理解できない。
大学で専門知識を身につける過程で
教材として読むのが本なのだから。
まずは良い先生のいる大学に入ることが先決。
2012/12/15(土) 14:09:45.40
>>402
> たとえば awk ぐらいの言語
awk のソース読めばいいんじゃね
現実問題 awk(awkでも何でもないawk) なんて知れてる行数だよね

% pwd
/usr/src/contrib/one-true-awk
% wc *.[chy]
233 1052 6431 awk.h
486 2452 13914 awkgram.y
976 3868 23267 b.c
582 2238 13104 lex.c
706 2838 17340 lib.c
218 884 5961 main.c
168 820 5138 maketab.c
276 861 5185 parse.c
195 984 6859 proto.h
1960 7223 44856 run.c
457 2000 12574 tran.c
6257 25220 154629 total
2012/12/16(日) 05:41:22.57
何の知識もない人が、いきなりlexerやparserのソースコードを読んでもむずかしいと思う。
最近なら素人向けにそういうのを解説した本や雑誌がありそうだけど。
2012/12/16(日) 06:13:43.37
最近だと『言語実装パターン』辺りが
2012/12/18(火) 10:19:05.86
いやー難しいもんだね。
言語理論自体が一つの学問になっているくらいの難解さなうえに
言語を作るためには何かしらの言語を操れるスキルが必要。
独学でやったら人生を浪費してしまうよ。
素直に大学の専門学部に行くべし。
2012/12/18(火) 10:39:12.78
http://www.amazon.co.jp/dp/4797337958/
2012/12/18(火) 11:13:06.47
大学行っても勉強するのは自分だよ。
2012/12/19(水) 19:45:23.97
>>410
「ふつう」の人にオススメできない本でした。
環境を486・linux・javaに限定しているのでWindowsで動くバイナリを期待した人は落胆するでしょう。
「x86系CPUを選んだ理由は、現在この地上において最も普及しており、、、」と書いているわりには
Windowsを完全にスルーするのはどうかと思います。まあパーサやアセンブラの関係なんでしょうけど、、、。
各章でコンパイラ・リンカ・CPU・実行の仕組みなど多くを扱っている為かページ数だけ増大し、内容が薄いものになっています。
構文解析には既成のパーサを用いている為、その実装や理論・アルゴリズムは他の書籍に丸投げしているので残念ながらこの本1冊でコンパイラを理解するのは無理でしょう。
また486に関しても同様です。
コンパイラ本にはドラゴンブックや中田育男先生の本、486には「はじめて読む486」など名著が存在するのでしょうがないですが、、、。
逆にいうとそれらの名著をすでにお持ちの方は「この」本は必要ないように思われます。
著者はあくまで「現実的な」コンパイラを目指していますが、その「現実的な」コンパイラを実装したところでそれをどうように活用するの?という疑問が沸いてきました。
速い実行速度が必要ならばC言語で事足りるし、柔軟な言語が必要であればperl・rubyやjavaで十分だと思います。
コンパイラの理論を勉強するのであればこの本の存在意義は皆無です。

「俺は天才だからコンピュータ言語に新たなパラダイムを吹き込む!」といった人は読むべき本です。
最後に良心と思ったのは価格です。これが倍以上の値段だったら発狂しているところでした。
2012/12/19(水) 19:47:31.32
馬鹿には無理
414デフォルトの名無しさん
垢版 |
2012/12/20(木) 08:29:23.83
構文木理解しろ。
2012/12/20(木) 08:56:41.50
「Cで書いたプログラムがたいてい高速に動作する(中略)
Cはカミソリのように切れ味鋭いツール」

『プログラミング作法』p.105 ブライアン・カーニハン、ロブ・パイク
416デフォルトの名無しさん
垢版 |
2012/12/25(火) 00:17:43.00
これはどうかな
言語実装パターン――コンパイラ技術によるテキスト処理から言語実装まで
Terence Parr 著、中田 育男 監訳、伊藤 真浩 訳
原書: Language Implementation Patterns
http://www.oreilly.co.jp/books/9784873115320/
2013/01/05(土) 18:00:54.59
>>412
unix/linux上でjavaって、工学部出身だとすごく平凡な環境
サービスエンジニアが発狂してるのかな?
2013/03/27(水) 12:27:12.50
>>著者はあくまで「現実的な」コンパイラを目指していますが、その「現実的な」コンパイラを実装したところで
>>それをどうように活用するの?という疑問が沸いてきました。
コンパイラを作ってやろうと思ってるなら

>>速い実行速度が必要ならばC言語で事足りるし、柔軟な言語が必要であればperl・rubyやjavaで十分だと思います。
この発想自体がおかしい。
そもそも本を手にした時の発想とピントがずれてますね。
加えてプログラミング言語に目的を絞っている点で視野が狭い。
2013/05/27(月) 16:10:16.07
命令型でもないし関数型でもない言語を考えてる人とか研究室・研究所ってあるん?
あるいは、言語として命令型か関数型以外のタイプは存在し得ないともう分かってるの?
2013/05/27(月) 16:33:04.44
Prolog とか
2013/05/28(火) 13:50:46.37
ああ、述語のやつか。あんまりぱっとせんね
2013/05/30(木) 10:13:32.25
ないものは創れば良い
2013/05/30(木) 10:15:15.47
SQL で 8-Queens 解いてるひといたけど
あれはどういうジャンルなんだろ
2013/06/01(土) 23:45:42.28
劣化関数型言語じゃねーの
425デフォルトの名無しさん
垢版 |
2013/06/02(日) 11:53:48.28
集合型とか言ってる人がいたな。
2013/06/07(金) 11:59:52.21
非手続き&非手順、言語に興味ある奴いる?
つまり論理に依存しないプログラムなんだが存在否定するほど無知な奴は
どうでもいい。
427デフォルトの名無しさん
垢版 |
2013/06/07(金) 12:21:59.50
>>426
Haskellじゃダメなの?

世の中、手続きが大事だから、それが表現できない言語は失敗するよ。
(通信・ハードウェア制御・UI等)
2013/06/07(金) 13:11:08.91
>>426
興味ある、てか同じような事考えてるかも
どんなの?
2013/06/07(金) 13:20:30.22
>>426
ノシ
2013/06/07(金) 13:57:55.55
>>428
ネットワーク型で非論理を布石のように結ぶことで一定の働きを表現できる。
>>427
いつ誰がやっても同じ結果になるなら、そんな言語は捨てるほどある。
チューリング&ノイマン的な方法論で言語を作るなら
デザインも含め、時間と労力があれば金だせば誰でも発注できるだろ。
2013/06/07(金) 13:58:26.62
言葉に酔ってる
432デフォルトの名無しさん
垢版 |
2013/06/07(金) 14:16:31.64
>>430
言っている意味が欲分からない。

何となくだが、LabviewやMATLABのSimulinkみたいなものを作りたいの?
2013/06/07(金) 14:18:29.93
ニューラルネットじゃね。
2013/06/07(金) 14:31:05.07
>>430
非論理で布石ってどんなの?
俺が思ってるのは転置?インデックスで、要はその時々の確率で動くプログラム
チューリング的な意味では同じ様な事かも
435デフォルトの名無しさん
垢版 |
2013/06/07(金) 14:41:15.80
普遍性は科学の基盤なのに。
それを捨てたら、応用できなくなる。

というか、そもそも道具としても有用なのか?
砂上に楼閣を建てようとする人なんていないだろ。
アナログコンピュータが消えた理由を考えた方が良い。
2013/06/07(金) 14:44:19.40
>>432
そういう表現するなら無視してくれ、完全に別次元。

>>434
原因と結果が因果していない類とか偶然成立するものとか
ランダムとランダムを重ねることで模様を生み出すとか。
論理思考に捉われるとすべて論理に見えてくる。
非論理なら意味不明な働きで何が悪いのかという話しになる。

論理じゃないんだから、働きが意味不明でもそれはそれで正しい。
何に利用するのみたいな煽りがでてきそうだけど、利用するとか関係ないのに
利用する前提になっているのが痛い。
2013/06/07(金) 14:45:22.21
>>435
応用の必要が無いもの、道具ではないもの。
そんなものを考えるのに何で応用や道具が必要なの?
2013/06/07(金) 14:47:01.37
非論理な言語に向かって論理的じゃないよと突っ込む、その心とは?
439434
垢版 |
2013/06/07(金) 14:50:00.18
先に書いちゃっていい?タイミング的に後先なるかもだけど

フリーソフトつくりますってスレの22にも概要的な所書いたんだけど、基本的に普遍性が使いにくい所でしょ?PCとかプログラム言語って
アレして、が通用しない所
でも、特定のタイミングでアレとは何なのか世界中で蓄積したら機械にも分かるんじゃない

機械語の次に高級言語があって、それらって基本的にかぶり倒してるよねやる事。
だからもう高級言語いらないんじゃないかって。学習コストばっかり掛かって世界中のリソースが無駄になってると思う
440434
垢版 |
2013/06/07(金) 14:53:16.58
やっぱ後先なったか。

あとほんでそういうのを有用にする為には巨大なデータの蓄積が必要で、
それってGoogleとかカノニカルとかがやって今集めてるような、個人の動きを儲けにする、「道具」にしてしまうのはまずくて、「言語」とかベースになるべきものだと思う
2013/06/07(金) 14:54:01.78
論理に依存しないじゃなくて頭が論理についていけないだけ
2013/06/07(金) 14:57:24.77
非論理言語としてこんな言語=A(従来の論理型言語は@)
@if 条件 then 実行
Amaybe 条件 also 創作
443434
垢版 |
2013/06/07(金) 14:57:51.02
>>436
先に語り倒してしまったゴメン

ランダムでも非論理でも利用できるまで集めたら利用出来るでしょ
その"利用する"瞬間がその言語にとってのtrueみたいな。またそれは変わるけど
2013/06/07(金) 15:04:21.75
>>443
偶然の原理において結果が必然に発生するかもしれないって領域。
ゴミを捨てまくれば山になる、これは条件付きで必然になる。

情況において何かをゆがめれば絶対的な結果ではなく可能性が高い誘導が
なされるって話し。

例えばサイコロの中に偏った重りや形状の歪をつければ、サイコロは確率的に
同じ面を出すのではなく歪んだ結果となる。
常に正しい結果になるわけではなく、可能性が歪む。

前提を曖昧に知覚し、それをもって布石(可能性としての)を行う。
結果として可能性はさらに累積して歪む。
これは論理なのかを答えてくれたら嬉しい。
445434
垢版 |
2013/06/07(金) 15:06:09.91
>>444
歪んでるのが正解、って考え。
答え先行

っていうので解答になってる??
2013/06/07(金) 15:08:48.68
>>445
論理だと原因が先で結果が後になる、これは科学的思考だと思う。

で私が考えているのは結果が先で、原因が後、
思考としては恐ろしく歪んでいるがそれが何といわれても困るわけで。
新しいアイデアなんてそんなもんじゃないかな。
447434
垢版 |
2013/06/07(金) 15:10:53.36
>>446
最初に書いた人?
だったらその辺りは同じだよねきっと考えてる事
2013/06/07(金) 15:12:04.28
>>447
そのとおり、

哲学板でオカルトを展開している人ですwwww
449434
垢版 |
2013/06/07(金) 15:18:07.64
>>448
おお、やっぱ似たような事考えてる人っているんだねー
結果が先だよね。

演算機って基本、右手に三個・左手に四個ボールを持っていますそれを流し込んだらホラ七個、っていう
それお前が最初から七個ボール持ってない限り出てこんやろその答え、って思う
2013/06/07(金) 15:18:41.38
>>449
もし→ならば(過去の技術
もし→たぶん(ジョンタイターのコンピュータ言語の予言

こんなのも触発されている。

板的に技術板だから、非技術的な言語となるものを妄想するのは
否定されても仕方が無いんだが、そういう類を考えている人が他にいるだけ
面白いかもしれない。
論理だけで成立する仕組みではない何かとなれば当然として変な方向に
至るというのが持論である。技術系の2chではオカルト拒否で終わるのが日常
2013/06/07(金) 15:24:34.27
>>449
思想の根源の原理から表すと布石やら嘘やら錯覚というのがその類となる。
意味や正しさや判断やらは不要という話し。

たとえば嘘という原理で言語を考えてみれば嘘を800付けば、それは現実になる。
半島の技術ニダ(オリジナル)

物事は個と環境によって個の意味が環境に対する関係で成立していると考えている。
つまり従来論では環境を定常と考え普遍に近いものと見なし個の意味が変化することで
世界に対する働きや論理が成立するように受け止められる。だがそれを歪めて
世界のほうが何も変わらない個に対して変化しえれば個の意味が変わってくる。
布石と表現した類は世界の性質を変えることで個の必然性をゆがめ、偶然を
誘導できるはずだと妄想するのです。そんな原理をもとに非論理系の
言語の土台という発想なので論理思考の人にはキモチワルイとしか印象を
与えられない気がします。
452434
垢版 |
2013/06/07(金) 15:25:51.73
>>450
具体的には、副作用なし・機械が認識できる全ての情報は関数。そして関数の全ての結果を一つの値を返す関数として再定義する。って所になると思う
実際に使った答えだけを残すのがミソというか、組み合わせ爆発の限界以下を切り捨てつつやる、でどこまでいけるだろう
2013/06/07(金) 15:28:39.85
>>452
関数は受け入れます、しかし関数の元となる素の定義を否定します。
関数が呼ばれるという構造があるとすれば関数が行う論理構造の情報の
関係性はその時点で自己組織化のように自動で場の空気を読むように
自然再生されるべきです。つまり関数のメンバーは不明が羅列されている
ってこと。作られた時点では関数メンバーの働きは全く分からないという
構想です。
454453
垢版 |
2013/06/07(金) 15:33:02.08
C言語的に
戻り=function (パラメータ1、パラメータ2)

とする場合、
functionの実行内容は
function (){
不明関数1();
不明関数2();
不明関数3();
不明関数4();
}
であり不明関数の中もさらに不明です。
具体的に不明とは?ですが、不明とはデタラメでもいいのです
function (){
ランダム取得();
一意の意味処理();
ユーザーに処理を聞く();
情報を忘れる();
いいかげんに何かしてみる();
}
455434
垢版 |
2013/06/07(金) 15:34:31.61
>>453
それじゃほんとにランダムになってしまわない?現代アートだね

"実際に使われた関数"は次に優先的に選ばれる、一点だけ足したら実際に便利なものになるはず。時間はかかるだろうけど

どっちが良いとかではなくてね勿論
アートと生活は比べられない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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