-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
326 lines (313 loc) · 30.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>JATS-UG - Japan ATS User Group</title>
<meta name="description" content="日本語でのATS言語の利用促進や情報交換のためのユーザーグループです">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="css/normalize.min.css">
<link rel="stylesheet" href="css/main.css">
<script src="js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
</head>
<body>
<!--[if lt IE 7]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.4&appId=310889061205";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="header-container">
<header class="wrapper clearfix">
<h1 class="title"><img src="img/ATS_theLogo_60x60.png" alt="ATS logo"> Japan ATS User Group</h1>
<nav>
<ul>
<li><a href="#about">ATS言語とは</a></li>
<li><a href="#install">最初の一歩</a></li>
<li><a href="#document">ドキュメント</a></li>
</ul>
</nav>
</header>
</div>
<div class="main-container">
<div class="main wrapper clearfix">
<article>
<header>
<p>Japan ATS User Group (JATS-UG)は、日本における
<a href="http://www.ats-lang.org/">ATS言語</a>
の利用促進と、日本語での情報交換を目的としたユーザーグループです。
主な活動として <a href="#document">ATS言語に関するドキュメント</a>
を公開しています。</p>
<h1 id="about">ATS言語とは</h1>
<h2>やわらかい説明</h2>
<img src="draw/flow.png" alt="Compile flow">
<p>ATS言語のプログラムは大きく<a href="https://github.com/jats-ug/translate/blob/master/Web/cs.likai.org/ats/ml-programmers-guide-to-ats.md">3つの要素から成り立っています</a>。
動的な世界(Dynamics)、静的な世界(Statics)、証明の世界(Proofs)です。
動的な世界は通常のプログラミング言語と同じ実際に実行されるロジックです。動的な世界はATSコンパイラによってC言語に変換され、GCCによって実行バイナリになります。
静的な世界は<a href="http://www.haskell.org/">Haskell</a>や<a href="http://ocaml.org/">OCaml</a>のような型推論を持つ言語における型のことです。
静的な世界は実行時エラーを防ぐ目的で、型の力で動的な世界を制約します。
証明の世界は<a href="doc/ATS2/INT2PROGINATS/p2219.html">依存型(Prop)</a>と<a href="doc/ATS2/INT2PROGINATS/p3294.html">線形型(View)</a>に分類できます。
依存型は<a href="http://coq.inria.fr/">Coq</a>のような証明器として使うことができ、動的な世界のロジックに証明を与えることができます。
線形型はリソースを取り扱うことができ、例えばGCに頼らない動的な世界によるメモリ領域の管理を安全に行なうことができます。
動的な世界はコンパイルされて実行バイナリになりましたが、静的な世界と証明の世界はATSによるコンパイル時に評価(型検査)され、実行バイナリにはなりません。
しかし、静的な世界と証明の世界の検査に失敗すると、動的な世界のコンパイルも中止されます。これが「静的な世界と証明の世界は動的な世界を制約する」という意味です。</p>
<p>この制約による安全性の担保はプログラマの力に頼っています。もしプログラマが動的な世界だけを使ってATSプログラミングを行なったら、C言語と同等の安全性しか手に入りません。
プログラマが静的な世界と証明の世界を駆使して制約を強めれば強めるほど、動的な世界の安全性は強固なものになります。
これは<a href="doc/ATS2/INT2PROGINATS/f35.html">プログラマを中心にすえたプログラムの検証方法</a>で、
<a href="doc/ATS2/INT2PROGINATS/c3129.html">定理証明によるプログラミング(PwTP)</a>と呼ばれます。</p>
<p>少し脱線しますが、上図ではATSの動的な世界はC言語へと変換されています。
しかしこのATSのコンパイル結果の対象はC言語に限りません。
現時点ではC言語バックエンドの他に
<a href="https://github.com/githwxi/ATS-Postiats/wiki/code-generation">JavaScriptやPython</a>
をC言語の代わりにバックエンドとして使うことができます。
さらにATSプログラムをJavaScriptに変換できることで、<a href="http://www.ats-lang.org/SERVER/MYCODE/Patsoptaas_serve.php?mycode=hello">ATSプログラムをWebブラウザ上で動作させる</a>ことさえできます。</p>
<h2>硬い説明</h2>
<p>(以下の説明はATS本家トップページ
<a href="http://www.ats-lang.org/">http://www.ats-lang.org/</a> の翻訳です。)</p>
<h3>ATSとは何ですか?</h3>
<p>ATS言語は静的型付けのプログラミング言語で、形式的な仕様で統一されています。
Applied Type Systemフレームワークを基礎とする表現力豊かな型システムを持ち、
またそれは言語の名前にもなっています。
具体的には依存型と線形型をATSでは使うことができます。</p>
<p>ATS2 (ATS/Postiats) の今の実装は ATS1 (ATS/Anairiats) で設計され、そのコード行数は150K行強です。
ATSは時間効率と空間効率についてC/C++言語と同じくらい効率的です。
また多様なプログラミングパラダイムをサポートしています。</p>
<ul><li><strong>関数型プログラミング</strong>:
ATSのコアはMLの影響を受けた即時評価(call-by-value)の関数型言語です。
ATSにおける線形型は主にC言語と比較しても遜色ない効率の関数型プログラムを書くことに利用されますが、
同様にC言語と比較しても遜色なく小さなフットプリントを実現するためにも利用されます。</li>
<li><strong>命令型プログラミング</strong>:
ATSの命令型プログラミングに対するユニークなアプローチは
<em>定理証明によるプログラミング(PwTP)</em> のパラダイムを基礎としています。
ATSの型システムは他の言語では危険であると考えられている多くの機能を安全に提供します。
(例えば、明示的なポインタ演算や明示的なメモリの取得/解放などです)
これはATSを使った高品質な低レイヤーのシステムプログラミングを可能にします。</li>
<li><strong>並列プログラミング</strong>:
ATSはマルチスレッドプログラミングをサポートしていて、安全にpthreadを使えます。
リソースに対する追跡と安全な操作に線形型を利用することで、
マルチコアアーキティクチャを生かした信頼性の高いプログラムを作成できます。</li>
<li><strong>モジュラープログラミング</strong>:
ATSのモジュールシステムはModula-3の影響を大きく受けています。
それはシンプルで総称的で、
同時に大規模なプログラミングをサポートするのに効果的です。
</li></ul>
<p>その上に、ATSはATS/LFというサブシステムを含んでいます。
これは全域関数を使って構築された証明について、対話的な定理証明をサポートします。
これによってATSは、プログラミングと定理証明を構文によって組み合わせて、
プログラムの検証に対してプログラマ中心のアプローチを提供します。
さらにATS/LFは、メタな性質の証明と一緒に(論理体系や型システムのような)様々な形式的体系をエンコードするための論理フレームワーク(logical framework (LF))としての役目を果たします。</p>
</header>
<section>
<h3>ATSは何に向いているのか</h3>
<ul>
<li>ATSは現実的なプログラミングの正確さを強化できます。</li>
<li>ATSは改良に基づくソフトウェア開発を促進します。</li>
<li>ATSでは効率的な関数型プログラミングをすることができます。
にもかかわらず生のアンボックス化されたデータ表現を直接操作できます。</li>
<li>ATSの線形型を使うことでプログラムのメモリのフットプリントを削減できます。</li>
<li>ATSでは証明器を使うことでプログラマがプログラムの安全性と効率を向上させることができます。</li>
<li>ATSを使えばOSのkernelのような低レイヤーのコードを安全に書くことができます。</li>
<li>ATSは型理論を教えたり、高品質なソフトウェアを構築する際の型の力と可能性を教えるのを助けます。</li>
</ul>
</section>
<section>
<h3>ATSの学習に際しての提案</h3>
<p>ATSは (C++のように) 機能豊富です。
MLをベースにした関数型プログラミングとC言語をベースにした命令型プログラミングの知識はATSの学習に役立つでしょう。
一般に、ATSにおいて多くの馴染みのないプログラミングの概念と機能に出会うことに予期しておくべきです。
またそれらを学習するのに長い時間がかかることを覚悟してください。
うまくいけば、大きく複雑なシステムを最小のデバッグで実装することを楽しめる、自信に満ちたプログラマになれるでしょう。
</p>
</section>
<header>
<h1 id="install">最初の一歩</h1>
<p>なにはともあれ使ってみましょう。
インストール手順については <a href="https://github.com/githwxi/ATS-Postiats/wiki/Building-and-installing">公式wiki</a> も参考にしてください。</p>
</header>
<section>
<h2>1. ダウンロード</h2>
<p><a href="http://sourceforge.net/projects/ats2-lang/files/">http://sourceforge.net/projects/ats2-lang/files/</a> と
<a href="http://sourceforge.net/projects/ats2-lang-contrib/files/">http://sourceforge.net/projects/ats2-lang-contrib/files/</a>
から最新バージョンのATS2-PostiatsとATS2-Postiats-contribをダウンロードしてください。</p>
</section>
<section>
<h2>2. インストール</h2>
<h3>Linuxの場合</h3>
<p>ここでは<a href="https://www.debian.org/">Debian GNU/Linux</a>を例に説明します。はじめに、ATS2のインストールに必要なパッケージをインストールします。</p>
<pre><code>$ sudo apt-get install gcc libgc-dev libgmp-dev make
</code></pre>
<p>次に、先程ダウンロードしたATS2-PostiatsとATS2-Postiats-contribを解凍し、環境変数を設定します。</p>
<pre><code>$ tar xf ATS2-Postiats-X.Y.Z.tgz
$ export PATSHOME=`pwd`/ATS2-Postiats-X.Y.Z
$ export PATH=${PATSHOME}/bin:${PATH}
$ tar xf ATS2-Postiats-contrib-X.Y.Z.tgz
$ export PATSHOMERELOC=`pwd`/ATS2-Postiats-contrib-X.Y.Z
</code></pre>
<p>最後に、ATSコンパイラをコンパイルします。</p>
<pre><code>$ cd ${PATSHOME}
$ ./configure
$ make
</code></pre>
<h3>Windowsの場合</h3>
<p>ATS2をWindowsにインストールするには<a href="https://cygwin.com/">Cygwin</a>が必要です。はじめに、次のリストに挙げたパッケージを<a href="http://cygwin.com/setup-x86.exe">setup-x86.exe</a>もしくは<a href="http://cygwin.com/setup-x86_64.exe">setup-x86_64.exe</a>を使ってインストールします。</p>
<ul>
<li>gcc-core</li>
<li>libgc-devel</li>
<li>libgmp-devel</li>
<li>make</li>
</ul>
<p>次にCygwinコンソール上で、先程ダウンロードしたATS2-PostiatsとATS2-Postiats-contribを解凍し、環境変数を設定します。</p>
<pre><code>$ tar xf ATS2-Postiats-X.Y.Z.tgz
$ export PATSHOME=`pwd`/ATS2-Postiats-X.Y.Z
$ export PATH=${PATSHOME}/bin:${PATH}
$ tar xf ATS2-Postiats-contrib-X.Y.Z.tgz
$ export PATSHOMERELOC=`pwd`/ATS2-Postiats-contrib-X.Y.Z
</code></pre>
<p>最後に、ATSコンパイラをコンパイルします。</p>
<pre><code>$ cd ${PATSHOME}
$ ./configure
$ make
</code></pre>
<h3>Mac OS Xの場合</h3>
<p>はじめに、<a href="http://brew.sh/">Homebrew</a>を使って、ATS2のインストールに必要なパッケージをインストールします。</p>
<pre><code>$ brew install gmp bdw-gc
</code></pre>
<p>次に、先程ダウンロードしたATS2-PostiatsとATS2-Postiats-contribを解凍し、環境変数を設定します。</p>
<pre><code>$ tar xf ATS2-Postiats-X.Y.Z.tgz
$ export PATSHOME=`pwd`/ATS2-Postiats-X.Y.Z
$ export PATH=${PATSHOME}/bin:${PATH}
$ tar xf ATS2-Postiats-contrib-X.Y.Z.tgz
$ export PATSHOMERELOC=`pwd`/ATS2-Postiats-contrib-X.Y.Z
</code></pre>
<p>最後に、ATSコンパイラをコンパイルします。</p>
<pre><code>$ cd ${PATSHOME}
$ ./configure
$ make GCFLAG=-D_ATS_NGC
</code></pre>
</section>
<section>
<h2>3. コンパイル</h2>
<p>Hello Worldプログラムをコンパイルして動かしましょう。</p>
<pre><code>$ vi hello.dats
implement main0 () = println! ("Hello world!")
$ patscc -o hello hello.dats
$ ls
hello hello.dats hello_dats.c
$ ./hello
Hello world!
</code></pre>
</section>
<header>
<h1 id="document">ドキュメント</h1>
<p>JATS-UGではATS言語に関するドキュメントを公開しています。</p>
</header>
<section>
<h2>翻訳</h2>
<p>ATS言語に関する英語記事の翻訳を行なっています。主な翻訳文書へのリンクを紹介します。
より詳しくは <a href="https://github.com/jats-ug/translate">https://github.com/jats-ug/translate</a>
以下の文書を参考にしてください。また、翻訳作業に参加していただけるボランティアも募集しています。</p>
<h3>ATS公式ドキュメントの翻訳</h3>
<p>3つの文書 <a href="doc/ATS2/INT2PROGINATS/index.html">ATSプログラミング入門</a>,
<a href="doc/ATS2/ATS2TUTORIAL/index.html">ATSプログラミングチュートリアル</a>,
<a href="https://github.com/jats-ug/translate/blob/master/Manual/EffectiveATS.md">Effective ATS</a>
を翻訳/公開しています。特に「ATSプログラミング入門」はATS言語のユーザにとって、
もっとも詳しいマニュアルです。これらの文書の詳細は
<a href="https://github.com/jats-ug/translate/blob/master/Manual/index.md">翻訳リポジトリ</a>
を参照してください。</p>
<h3>WebにあるATS言語に関する記事の翻訳</h3>
<p>公式サイト以外にも有用な情報がWeb上にはあります。
特に <a href="https://github.com/jats-ug/translate/blob/master/Web/cs.likai.org/ats/ml-programmers-guide-to-ats.md">MLプログラマ向けATS言語ガイド</a>
はATS言語の概要についてうまく解説しています。またATSユーザである
<a href="https://github.com/jats-ug/translate/blob/master/Web/index.md#bluish-coder">Chris Doubleさんのブログ (BLUISH CODER)</a>も参考になります。
しかしこのブログの記事はATS2ではなく主にATS1を解説しています。これらの記事の詳細は
<a href="https://github.com/jats-ug/translate/blob/master/Web/index.md">翻訳リポジトリ</a> を参照してください。</p>
<h3>ATS言語に関する論文の翻訳</h3>
<p>ATSはApplied Type Systemという比較的新しい型理論を基礎としています。この型理論の初出論文が
<a href="https://github.com/jats-ug/translate/raw/master/Paper/ATS-types03/ATS-types03-ja.pdf">Applied Type System (Extended Abstract)</a>
です。その他の論文については
<a href="https://github.com/jats-ug/translate/blob/master/Paper/index.md">翻訳リポジトリ</a> を参照してください。</p>
<h2>JATS-UGによる文書</h2>
<p>ATS言語への敷居を下げることを目的にして、翻訳文書よりも入門向けの文書をいくつか公開しています。</p>
<ul>
<li><a href="http://jats-ug.metasepi.org/doc/ATS2/ATS_Foundations/">ATS Programming Foundations</a> - OCamlの著名な入門書である <a href="http://pllab.is.ocha.ac.jp/~asai/book/Top.html">プログラミングの基礎</a> を題材とした入門書です</li>
<li><a href="http://togetter.com/li/752948">禅問答的に #ATS2 の型理論を説明してみたよ</a> - 他の言語と比較して理解しにくいATS言語の型システムを直感的に解説しています</li>
</ul>
<p>ATSに関連するプレゼン資料も以下にまとめています。</p>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/2SGu6LMoHin0yu" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/fBo18Geb28KQDS" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/jc1ZvHdwGRN6da" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/vJZho5vOZyHgf9" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/NpS6hFGqdypaH" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/JHnRlkhajePCBI" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/knm6DicP1FHaBQ" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/pTcuGaXLRtucV" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/NSnxPUHGRK8262" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/45411751" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/40705241" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/40449441" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/38252095" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/37593712" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/36651571" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<iframe src="//www.slideshare.net/slideshow/embed_code/34529495" width="283" height="236" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
</section>
<header>
<h1 id="license">ライセンス</h1>
</header>
<section>
<p><a href="img/jats-ug_logo_v1.png">JATS-UGロゴ</a>は <a href="https://www.flickr.com/photos/otakumunidad/5787704531/">Copyright (c) 2011 Otakumunidad Damned</a> で <a href="https://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution 2.0 Generic License</a> の条件の下でリリースされます。 </p>
</section>
</article>
<aside>
<h3>寄付</h3>
<div class="sidebar-links" align="center"><a href="https://www.patreon.com/bePatron?u=14024680" data-patreon-widget-type="become-patron-button">Become a Patron!</a><script async src="https://c6.patreon.com/becomePatronButton.bundle.js"></script></div>
<div class="sidebar-links" align="center"><img src="img/donate_bitcoin_250x250.png" /><br><a href="bitcoin:1APvCwaFtxLo9DaHquQQzbKTzWTCZvbAwK?label=Donate_JATS-UG"><font size="2"><i>1APvCwaFtxLo9DaHquQQzbKTzWTCZvbAwK</i></font></a><br><a href="https://blockchain.info/address/1APvCwaFtxLo9DaHquQQzbKTzWTCZvbAwK">Bitcoinで寄付していただいた方々</a></div>
<h3>Facebook</h3>
<div class="fb-page" data-href="https://www.facebook.com/jatsug" data-width="300" data-height="290" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true" data-show-posts="true"><div class="fb-xfbml-parse-ignore"><blockquote cite="https://www.facebook.com/jatsug"><a href="https://www.facebook.com/jatsug">Japan ATS User Group</a></blockquote></div></div>
<h3>Twitter</h3>
<a class="twitter-timeline" href="https://twitter.com/jats_ug" data-widget-id="414592426720772096">@jats_ug からのツイート</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<h3>リンク集</h3>
<div class="sidebar-links"><ul>
<li><a href="http://www.ats-lang.org/">ATS言語公式サイト</a></li>
<li><a href="https://github.com/githwxi/ATS-Postiats">ATS言語公式リポジトリ</a></li>
<li><a href="https://github.com/githwxi/ATS-Postiats/wiki">ATS言語公式Wiki</a></li>
<li><a href="http://www.ats-lang.org/SERVER/MYCODE/Patsoptaas_serve.php?mycode=hello">Try ATS on-line</a>
- ATSのサンプルプログラムをWebブラウザ上で実行</li>
<li><a href="http://stackoverflow.com/tags/ats/info">Stack Overflowの'ats'タグ</a></li>
<li><a href="http://bluishcoder.co.nz/">BLUISH CODER</a>
- ATSユーザChris Doubleさんのブログ</li>
<li><a href="https://github.com/jats-ug/">JATS-UGのgithubリポジトリ</a></li>
<li><a href="http://groups.google.com/group/jats-ug">JATS-UGのメーリングリスト</a></li>
<li><a href="https://www.hipchat.com/gG9KkoQru">JATS-UGのチャット</a></li>
</ul></div>
<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/QA/Tools/I_heart_validator_lg" alt="Valid HTML"></a></p>
</aside>
</div> <!-- #main -->
</div> <!-- #main-container -->
<div class="footer-container">
<footer class="wrapper">
<h3><a href="http://metasepi.org/">
<img class="logoimg" src="img/metasepi_logo_v1_100x100.png" alt="Metasepi logo"></a>
Powered by Metasepi Project.</h3>
</footer>
</div>
<a href="https://github.com/jats-ug/"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png" alt="Fork me on GitHub"></a>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.1.min.js"><\/script>')</script>
<script src="js/main.js"></script>
<script>
var _gaq=[['_setAccount','UA-158383-12'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src='//www.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
</body>
</html>