<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/newclang/">
    <title>newclang @ ウィキ</title>
    <link>http://w.atwiki.jp/newclang/</link>
    <atom:link href="https://w.atwiki.jp/newclang/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>newclang @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2010-04-21T14:17:25+09:00</dc:date>
    <utime>1271827045</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/26.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/25.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/24.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/1.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/16.html">
    <title>要望</title>
    <link>https://w.atwiki.jp/newclang/pages/16.html</link>
    <description>
      *要望リスト

-デバドラ屋だって、オサレ言語で開発したい！ 
-プログラマーの言語仕様の学習不足によるヒューマンエラーを最小限にするために、できるだけ小さな言語仕様にしたい。 
-組込み屋だけど、関数型とダックタイピングしたい。 
-shared_ptrの構文糖が欲しいな
-octet型が欲しい
-2.657 ビット演算周りの演算子優先順位は見直して欲しい 
-volatileに相当する修飾のサポート

**メモリマップドレジスタの宣言 
#define XXXX_REG (*(volatile int *)(0xC0000004)) 
のような記述がださいので 

これをサポートする記述構文と namespace が欲しいな 
オフセットずらしもできるようにして 
（Cの構造体でごまかすこともできるんだが） 

**Cはビット操作系の命令とSIMDへの対応がなっていない 
オマイラ演算子とデータ型を追加してみてくれ 

IDEによる支援がし易い文法にしたい

ラムダ、モナド、タプル、クロージャー、マクロ 

Cの配列にはオーバーヘッドはないし 
structも詰め物以外のオーバーヘッドはない 
そういうベタ構造も、勿論必要だろうが、 
超高級unionとしての代数的データ型とか 
そういうのもあると、便利なような気がする 

勿論オーバーヘッドの量（ワード一個とか）やメモリレイアウトが 
分かりやすく、把握可能であるという前提で 
google goのinterfaceはダックタイピング／structural subtyping風味で 
好みなのだが、あれのオーバーヘッドはどれぐらいなのだろう 

-ダックタイピングいいな

抽象化したいときには抽象化できて 
ベタで書けば高速にもできるってことならいいと思うんだが 

goのinterfaceってのはクラス指向OOへのアンチテーゼだが 
別にC++同様OOなんて使う必要ないし 
VM系の、管理されたサンドボックスで走らせるために毎度毎度 
境界チェックとかやるような仕様でなければ、特に問題ないんじゃないの 

抽象化したいときには抽象化できて 
ベタで書けば高速にもできるってことならいいと思うんだが 

goのinterfaceってのはクラス指向OOへのアンチテーゼだが 
別にC++同様OOなんて使う必要ないし 
VM系の、管理されたサンドボックスで走らせるために毎度毎度 
境界チェックとかやるような仕様でなければ、特に問題ないんじゃないの 

[[インラインアセンブラ]]
ioを叩く

Cのpragmaで処理されているところは、C#の属性のような構文の方がスッキリする。 

118 ：デフォルトの名無しさん：2010/04/14(水) 22:41:04
implementation-defined 
言語仕様を小さくする魔法の言葉 

標準ライブラリに参照カウンタでのメモリ管理入れておいて 

143 ：デフォルトの名無しさん：2010/04/14(水) 23:30:23
goto廃止 

860 ：デフォルトの名無しさん：2010/04/20(火) 23:08:22
新言語にはデストラクタに相当する機能が是非欲しい。     </description>
    <dc:date>2010-04-21T14:17:25+09:00</dc:date>
    <utime>1271827045</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/22.html">
    <title>型</title>
    <link>https://w.atwiki.jp/newclang/pages/22.html</link>
    <description>
      *型

**基本データ型 
**整数、実数 
***整数 
octed
オクテットは必ず8ビットである。

byte : 1 [octet]のみ、文字だって数値だし、文字型いらね 
integer : CPUが自然に扱える範囲で 

|8bit |16bit |32bit |64bit |128bit   |
|int8 |int16 |int32 |int64 |int128   |
|byte |short |int   |long  |long long|
|byte |byte2 |byte4 |byte8 |byte16   |
|octet|octet2|octet4|octet8|octet16  |
|oct  |oct2  |oct4  |oct8  |oct16    |

***正数
|8bit  |16bit  |32bit  |64bit  |128bit    |
|ubyte |ushort |uint   |ulong  |ulong long|
|uint8 |uint16 |uint32 |uint64 |uint128   |
|u8    |u16    |u32    |u64    |u128      |
|ubyte |ubyte2 |ubyte4 |ubyte8 |ubyte32   |
|uoctet|uoctet2|uoctet4|uoctet8|uoctet16  |
|uoct  |uoct2  |uoct4  |uoct8  |uoct16    |

***実数 
floating : 浮動小数点数、IEEEのでもなんでもかまわん 
fixed : 固定小数点数、誰得 
**浮動小数点型

|1byte|2byte|4byte     |8byte |16byte|
|     |     |float     |double|      |
|     |     |shotr real|real  |      |
**虚数

complex

**複合データ型 
配列、多次元配列、構造体(のようなもの)、列挙、参照、メモリ参照(つまりポインタ) 
**配列 
type[n] array 
**多次元配列 
type[n,m,...] array 
**構造体、列挙 
Cのがいいよ 
struct

**参照 
関数の引数にのみ使える、いわゆる本当のcall by referenceを実現するため 
また、メモリ参照を増やさないため 
alias unsigned integer uint_t; 
ret-type func(ref type[,] array, uint_t row, uint_t column);または 
ret-type func(type[,] &amp;array, uint_t row, uint_t column); 
**メモリ参照 
type@ memref 
integer@ memref = new integer[n]; 
integer int, @ memref_int = ∫ 
@memref_int = 128; 
integer[n] array, [n,m] marray 
memcpy(&amp;marray[x,0], array, n); 
&amp;marray[x,0] != @(marray+x)+0, &amp;array[0] == array 
メモリをうまく抽象化できればいいんだけど 


**文字列

文字列型は動的メモリ管理と直結だから 
Cには入ってないんよね 
実行系が必須だと困る用途もあるし 

-0終端文字列
-文字列構造体
-可変長配列


結局型のサイズって重要だから 
stdint風でいんじゃない？     </description>
    <dc:date>2010-04-18T23:53:39+09:00</dc:date>
    <utime>1271602419</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/19.html">
    <title>議題</title>
    <link>https://w.atwiki.jp/newclang/pages/19.html</link>
    <description>
      *新しい言語は式ベースで作るべきかどうか？ 
コンパイラの研究に使われている関数型言語の構成が式ベースになっているので 
それに習う? 
いろんな機能てんこ盛りがよい？ 

*式言語をベースにする場合どういったものにするのがよいか？ 
演算子の優先順位は必要？ 
endで終わるほうがいい？ 
オフサイドルールって必要？ 
{}がいい？ 
- ブロックを明示しやすくて文でクロージャ作れるし{}がいいと思う 
- オフサイドルールはコードはすっきりするけど賢いエディタ前提で深さがわかりにくい 
- Cよりシンプルな構文が望ましいが別にC系でいいんでは 
- 演算子の再定義はスパゲッティ化しやすいから不要 
- マクロもインラインとか定数型などの別な方法で実現可能なので不要 

*HaskellやPrologのようにユーザーが優先順位付きの演算子を登録できる機能が必要か？ 

ないほうが実装が楽になりますが自由度は減ります。 

*EcmaScriptやScala、ActionScriptではXMLを直接かけるが必要かどうか？ 

- XMLなんかは外でやればいいんでは 

*型システムと型関係の機能はどうするか？

**関数・演算子呼び出し
-型による多態
-パターンマッチング
-動的・静的
- 勝手にデータを付加しないASN.1とかCの構造体的なメモリイメージと直結したデータ構造 
- 動的型付け、GCや動的メモリ管理は明示的に利用を限定出来るならいいかも 
- その他のシンタックスシュガーは適度にアリ 

Schemeのように最小仕様で拡張性最大にできないかな？ 


**低レベル
低レベルって言っても、高速化を目的とした低レベル(レジスタやメモリを触りたい)と 
汎用性を主眼においた低レベル(特殊な入出力等)って、方向性が違うから難しいよな…     </description>
    <dc:date>2010-04-18T23:47:39+09:00</dc:date>
    <utime>1271602059</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/26.html">
    <title>インラインアセンブラ</title>
    <link>https://w.atwiki.jp/newclang/pages/26.html</link>
    <description>
      インラインアセンブラを使いたいだけなら、 
特別なポインタを用意してやって、そこにマシン語を書き込んで、 
コール出来るようにしてやれば良いと思う。 
って言うか違うな… 
アセンブラ関数が作れれば良いんじゃないか…？ 
で、引数と戻り値のルールや、変数等のポインタを共通化してやれば使いやすくなる？     </description>
    <dc:date>2010-04-18T23:45:03+09:00</dc:date>
    <utime>1271601903</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/newclang/pages/2.html</link>
    <description>
      **メニュー
-[[トップページ]]
-[[要望]]
-[[要件]]
-[[Cから削る機能]]
-[[Cにない欲しい機能]]
-[[議題]]
-[[仕様]]
--[[型]]
--[[並列]]
--[[インラインアセンブラ]]
-[[プラグイン紹介&gt;プラグイン]]
-[[まとめサイト作成支援ツール]]
-[[メニュー]]
-[[メニュー2]]
-[[言語の規定]]
-[[疑問]]
-[[関数ポインタ]]
-[[FAQ]]
----

**リンク
-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]

**他のサービス
-[[無料ホームページ作成&gt;&gt;http://atpages.jp]]
-[[無料ブログ作成&gt;&gt;http://atword.jp]]
-[[2ch型掲示板レンタル&gt;&gt;http://atchs.jp]]
-[[無料掲示板レンタル&gt;&gt;http://atbbs.jp]]
-[[お絵かきレンタル&gt;&gt;http://atpaint.jp/]]
-[[無料ソーシャルプロフ&gt;&gt;http://sns.atfb.jp/]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2010-04-18T23:44:55+09:00</dc:date>
    <utime>1271601895</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/25.html">
    <title>FAQ</title>
    <link>https://w.atwiki.jp/newclang/pages/25.html</link>
    <description>
      -Cが低級ってのが、なんで、って感じ     </description>
    <dc:date>2010-04-18T23:43:43+09:00</dc:date>
    <utime>1271601823</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/24.html">
    <title>要件</title>
    <link>https://w.atwiki.jp/newclang/pages/24.html</link>
    <description>
      ◆新言語の要件 v0.1◆ 

（１）ハードウェアを直接操作する低レベルの記述が可能 
（２）プログラマーが勘違いしてプログラマーの意図と違う動作をしないように言語仕様が直感的で学習が容易 
（３）最新のオサレ機能が使えてワクワクしながらプログラミング可能

&gt;&gt;92 
ハードウェアを操作するっていうのはメモリマップされたI/Oをじかに叩くとかだろ。 
それって生ポインタだろ。 
生ポインタは「学習が容易」ではないし「最新のオサレ機能」でもない。 

「汎用的に使える言語であって、特に『現在Cが利用されていて、Javaが使用されていない分野』に利用出来ること特徴とする言語」     </description>
    <dc:date>2010-04-18T23:42:49+09:00</dc:date>
    <utime>1271601769</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/21.html">
    <title>関数ポインタ</title>
    <link>https://w.atwiki.jp/newclang/pages/21.html</link>
    <description>
      11 ：デフォルトの名無しさん：2010/04/13(火) 02:18:03
別に僕は今のC言語で問題ないんだけど 
新しいのを作るとしたらポインタ、特に関数へのポインタを引数に取り、関数へのポインタを引数に取る関数へのポインタを返す関数へのポインタとかを美しく記述できる文法を切口にポインタに変わるアドレッシング方法を考えればいいとおもう 
int&lt;- p; 
int ()(void)&lt;- fp; 
int ()(int ()(void)&lt;-)&lt;- ()(int&lt;- ()(void)&lt;-)&lt;- fpp; 
ダメだ、読みにくい 
int (*(*fpp)(int (*)(void)))(int (*)(void)); 

そもそも関数ポインタに代わるなにか、高階関数とかあればよいのだろうか 

12 ：デフォルトの名無しさん：2010/04/13(火) 02:25:49
&gt;&gt;11 
普通に関数ポインタをtypedefすれば良いんじゃない？ 

13 ：デフォルトの名無しさん：2010/04/13(火) 02:26:51
&gt;&gt;11 
そのための typedef。 

14 ：12：2010/04/13(火) 02:27:09
まぁ、関数ポインタを見やすくすること自体は良いと思うけど… 

15 ：デフォルトの名無しさん：2010/04/13(火) 02:44:25
ちょっとした思い付きなんだけどスコープ内にある関数なら、 
第一引数と一致する型の変数から暗黙的に関数を呼べると以外と便利かも… 
※javascriptのthisポイントみたいな感じで 

char *copy( char *src, *dst ); 
char *trim( char *src ); 
char *toupper( char *src ); 

*p-&gt;copy(*dst)-&gt;trim()-&gt;toupper(); 


16 ：15：2010/04/13(火) 02:45:59
アホだ俺、もう寝よう…orz 

*p-&gt;copy(*dst)-&gt;trim()-&gt;toupper(); × 
p-&gt;copy(dst)-&gt;trim()-&gt;toupper(); ○ 


関数ポインタならDのfunctionやScalaの関数宣言が参考になると 

int function(int) fp; // fp は関数へのポインタ 
int delegate(int) dg; // dg は関数へのデリゲート 

val f:(a:Int,b:Int)=&gt;Int = {(a:Int,b:Int)=&gt;a+b} がデリゲード 
val f:(a:Int,b:Int)-&gt;Int が関数ポインタとか 

&gt;&gt;15 
C#の拡張メソッドね。 
乱用すんなとは言われてるけど、なかなか便利。 


関数リテラル、関数内関数ぐらいは問題なさげ 
クロージャは、無限エクステントなしでよければ問題なさげ 
それでもforeachみたいなのに渡す分には困らない 
値として返せないけど     </description>
    <dc:date>2010-04-18T23:41:25+09:00</dc:date>
    <utime>1271601685</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/14.html">
    <title>Cから削る機能</title>
    <link>https://w.atwiki.jp/newclang/pages/14.html</link>
    <description>
      *削る機能

Cの中であまり使われない機能に順位を付けて 
上から順に削除していってスリムなCを見てみたい 
ビットフィールドとか使わないよね？ 

asとldは使われていないから削除ですね 
統計的にわかります 

ビットフィールドを削るのは見当違い?

-extern
-auto    </description>
    <dc:date>2010-04-18T23:33:28+09:00</dc:date>
    <utime>1271601208</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/newclang/pages/1.html</link>
    <description>
      **【超高速】C/C++に代わる低級言語を開発したい まとめwiki


70年代、Cは生まれ、それから30余年、現代においてもなお、低レベルなシステム開発に広く使われている。 

しかし、2010年の今、もしもCが発明されていなかったとして、低レベルなシステム開発のためのプログラミング言語を 
新たに作るとしたら、Cとは違う言語になるだろう。少なくとも、全く同じにはならないはずだ。 

そこで、このスレッドでは、 
低レベルなシステム開発のためのプログラミング言語 
を一から考えたい。 

既存の言語を使って何かをすることが目的ではなく、新たなプログラミング言語を考えることが目的であるから、 
「既存のXX言語を使えばいい。」という類の発言は無意味である。 

「既存のYY言語のZZ機能は、WWと言う点で有用だから採用したい。」という発言は歓迎だ。 
現代の一流のプログラミング言語研究者が、最先端の研究成果を盛り込んで、 
一から低レベルなシステム開発のためのプログラミング言語を作るとしたら、どのような言語になるだろうか、 
という観点で考えたい。 



◆前スレ 
【超高速】C/C++に代わる低級言語を開発したい 2 
http://pc12.2ch.net/test/read.cgi/tech/1270254244/ 

**次スレの名前案 
【超高速】C/C++に代わる低級言語が欲しい【妄想全開】 

基本的にCPUアーキテクチャに沿った 
手続き系で余分なことをしない静的な型の言語以外あり得ないんじゃないかな 

-ウィキはみんなで気軽にホームページ編集できるツールです。
-このページは自由に編集することができます。
-メールで送られてきたパスワードを用いてログインすることで、各種変更（サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等）することができます

**まずはこちらをご覧ください。
-[[@wikiの基本操作&gt;http://atwiki.jp/guide/category2.html]]
-[[用途別のオススメ機能紹介&gt;http://atwiki.jp/guide/category22.html]]
-[[@wikiの設定/管理&gt;http://atwiki.jp/guide/category6.html]]

**分からないことは？
-[[@wiki ご利用ガイド&gt;http://atwiki.jp/guide/]]
-[[よくある質問&gt;http://atwiki.jp/guide/category1.html]]
-[[無料で会員登録できるSNS内の@wiki助け合いコミュニティ&gt;http://sns.atfb.jp/view_community2.php?no=112]]
-[[@wiki更新情報&gt;http://www1.atwiki.jp/guide/pages/264.html]]
-[[@wikiへのお問合せフォーム&gt;http://atwiki.jp/helpdesk]]
等をご活用ください

**@wiki助け合いコミュニティの掲示板スレッド一覧
#atfb_bbs_list(112)

**その他お勧めサービスについて
-[[大容量１Ｇ、PHP/CGI、MySQL、FTPが使える無料ホームページは@PAGES&gt;&gt;http://atpages.jp/]]
-[[無料ブログ作成は@WORDをご利用ください&gt;&gt;http://atword.jp/]]
-[[2ch型の無料掲示板は@chsをご利用ください&gt;&gt;http://atchs.jp/]]
-[[フォーラム型の無料掲示板は@bbをご利用ください&gt;&gt;http://atbb.jp/]]
-[[お絵かき掲示板は@paintをご利用ください&gt;&gt;http://atpaint.jp/]]
-[[その他の無料掲示板は@bbsをご利用ください&gt;&gt;http://atbbs.jp/]]
-[[無料ソーシャルプロフィールサービス @flabo(アットフラボ)&gt;&gt;http://sns.atfb.jp]]

**おすすめ機能
-[[気になるニュースをチェック&gt;http://atwiki.jp/guide/17_174_ja.html]]
-[[関連するブログ一覧を表示&gt;http://atwiki.jp/guide/17_161_ja.html]]

**その他にもいろいろな機能満載！！
-[[@wikiプラグイン&gt;http://atwiki.jp/guide/category17.html]]
-[[@wiki便利ツール&gt;http://atwiki.jp/guide/category32.html]]
-[[@wiki構文&gt;http://atwiki.jp/guide/category16.html]]
-[[@wikiプラグイン一覧&gt;http://www1.atwiki.jp/guide/pages/264.html]]
-[[まとめサイト作成支援ツール&gt;http://atwiki.jp/matome/]]

**バグ・不具合を見つけたら？ 要望がある場合は？
お手数ですが、メールでお問い合わせください。    </description>
    <dc:date>2010-04-18T23:23:50+09:00</dc:date>
    <utime>1271600630</utime>
  </item>
  </rdf:RDF>
