<?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-18T23:45:03+09:00</dc:date>
    <utime>1271601903</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/26.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/23.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/newclang/pages/17.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <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/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/23.html">
    <title>並列</title>
    <link>https://w.atwiki.jp/newclang/pages/23.html</link>
    <description>
      前スレで並列機能の話がでてたが 
occamの並列構文とかおもしろいがな 
実装的にはjmpbuf内蔵するくらいのレベルで実現出来そうだし 
低級言語で1st classとして扱えると面白そう     </description>
    <dc:date>2010-04-18T23:19:57+09:00</dc:date>
    <utime>1271600397</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 
**多次元配列 
typ    </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/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    </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/20.html">
    <title>疑問</title>
    <link>https://w.atwiki.jp/newclang/pages/20.html</link>
    <description>
      不勉強だからブートストラップみたいなベタなとこを関数型言語で書けるのかな？     </description>
    <dc:date>2010-04-18T23:06:48+09:00</dc:date>
    <utime>1271599608</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/18.html">
    <title>言語の規定</title>
    <link>https://w.atwiki.jp/newclang/pages/18.html</link>
    <description>
      -言語の規定に warning はウォーニングと読む    </description>
    <dc:date>2010-04-18T22:56:45+09:00</dc:date>
    <utime>1271599005</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/newclang/pages/17.html">
    <title>Cにない欲しい機能</title>
    <link>https://w.atwiki.jp/newclang/pages/17.html</link>
    <description>
      ・Lispなみに弄くれるマクロ 
- テンプレート 
- 正規化された構文(S式とか) 
・Forthなみに弄くれる駆動レコード 
- コルーチン 
- 強制インライン展開(レコードを新しく作らないルーチン) 
- 駆動レコードへのアクセス 
・実行制御 
- 高度な並列処理(トランザクションとか) 
- アトミック操作 
- リアルタイム操作     </description>
    <dc:date>2010-04-18T22:49:53+09:00</dc:date>
    <utime>1271598593</utime>
  </item>
  </rdf:RDF>
