seccamp2017
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* セキュリティキャンプ2017用の特設ページ
-(by [[K]], 2017.03.28)
** 基本情報
-タイトル: 言語自作ゼミ
-時間帯: 3日間連続
-概要:
--言語自作ゼミは,川合講師が担当します.
--講師が開発しているプログラミング言語「Essen」を題材とし...
--具体的に何をするかは各自の希望をもとに設定します.
//--より詳しい説明が http://khfdpl.osask.jp/wiki/?seccamp...
-必要機材: PCのみ
-事前学習: あり
-註: twitterではものづくりトラック(集中コース)は他のト...
--一日も早い訂正を期待していますが、まだ対応してもらえて...
** (1)背景情報
-現在、講師である川合はプログラミング言語を作っています。...
-しかし作っているうちに、初心者だけではなく上級者にとって...
-ちなみに作っている言語は「Essen」(えっせん)という名前...
--応募に際して確認する必要はないですが、もし興味があればE...
-どんな言語にしたいのか?
--COLOR(blue){''全体としてはC言語みたいな言語''}(でもコ...
--変数のCOLOR(blue){''宣言をしなくても代入できる''}
---でもCOLOR(blue){''宣言をすることもできて''}、その場合...
---これは関数の引数とかで引数ミスを検出したいときなどに有用
--COLOR(blue){''セミコロンを付けなくてもOK''}な言語(ちな...
a = 1 b = 2 // こんな感じで書いてOK
--COLOR(blue){''コンマを書かなくてもOK''}な言語(ちなみに...
a = func(1 2 3)
b = func(a + b c d)
c = func(-1, -2 4) // -2の前にコンマがないと引数の数が2...
--COLOR(blue){''実行速度は速くない''}
---しかしインラインC言語とか、インラインRubyなどを使うこ...
---でも実はインラインRubyとかがうまくいくかどうかちょっと...
---もちろんRubyなどを私が実装するわけではなく、インライン...
--C言語は関数を自由に作ることができる、C++なら型(クラス...
--変数についてはCOLOR(blue){''永続変数をサポート''}してい...
---永続変数というのは、プログラムを終了しても消えない変数...
--COLOR(blue){''宣言する方法を改良''}できる言語
---たとえばC言語では#defineが使えます。関数も比較的自由に...
---宣言する方法も改造できるべきです。そうすれば、今までに...
---気が付いたらまったく別の言語になっている可能性はありま...
** (2)キャンプでは何をするのか
-キャンプで学生がやることは以下のことを想定しています。当...
-[ユーザコース]
--川合が上記の言語を作るので、その言語を使ってみて、使い...
--分からないことはどんどん聞いていいです。そういう情報こ...
--また「ここはこうできたらいいのに」と思うところがあれば...
--バグやセキュリティホールを見つけたら教えてください。講...
--このコースの場合、この言語を使って何かプログラムを作っ...
-[開発者コース]
--川合が作る言語処理系を直接改造して開発を手伝います。こ...
--このコースの場合、どれだけたくさんの改良提案ができたか...
-[ライバルコース]
--学生は川合のライバルとなり、オリジナルの言語を開発しま...
--このコースの場合、自分のオリジナル言語をある程度完成さ...
-これらのコースは固定ではなく、学生は自分のスキルや関心に...
** (3)セキュリティは?
-この講義ではセキュリティは主たる要素ではありません。まず...
-そして言語にはバグやセキュリティホールがきっと出てくると...
-一般にセキュリティホールをつぶすと、不便さが増します。そ...
--あれも禁止、これも禁止としていけば、それは簡単に安全に...
** (4)どんな学生に受講してほしいのか
-''プログラミングが大好きな学生''
--そうでなければ始まりません! ちなみにセキュリティに関す...
--得意な言語はなんであっても構いません。
--プログラミングが大好きで、前からこの言語はここが不便だ...
-''事前学習に時間が取れる学生''
--試験期間(の前後)や修学旅行などの時期は事前学習を完全...
--自宅もしくは学校にPCがないと事前学習ができないと思いま...
-''優秀な学生じゃないとだめですか?''
--もちろん優秀な学生は大歓迎ですが、しかしそれほどには技...
** (5) [2017.05.11追記] Essenについて
-川合が作っているEssenについて別の角度から説明します。
--これを読めば言語を作ることの可能性を感じてもらえると思...
~
-[Q] Essenって何がそんなにすごいの?既存の言語にできなく...
-[A] そんなものはないです。EssenはC言語で書かれていますが...
-[Q] なーんだ、意味ないじゃん。じゃあ既存言語で十分だね。
-[A] 私はそうは思いませんが、あなたの意見は尊重します。あ...
-[Q] え、川合はEssenを作ったら使うつもりなの?
-[A] もちろんです。使わないものを作っても無駄じゃないです...
-[Q] Essenにしかできないことはないのに、どうしてわざわざ...
-[A] Essenは高速じゃないです。・・・ええとですね、そもそ...
-[Q] じゃあなんだよ。速度のほかに何があるわけ?
-[A] それは記述方法です。構文や文法です。「簡単に書くだけ...
-[Q] うーん、抽象的過ぎてわかんないな。もっと具体的に説明...
-[A] そうですね。・・・Essenでは当然のことながら適当な関...
func = function (a b c)
{
funcCache ((a b c) 100) // 何がキーなのかを教える、...
{
// 上記命令はキャッシュのテストもして、もしヒッ...
ここでがんばって重たい計算をする
}
}
-[Q] ほほう。ちょっと面白そうだな。
-[A] キャッシュは永続変数に格納されているので、プログラム...
-[Q] え、プログラムを中断して再開してもキャッシュは残るっ...
-[A] それはもちろん、funcCacheの後ろの { ... } の中も文字...
-[Q] そんなにキーが大きくなってもいいのか?
-[A] はい、いいです。というかキーを大きくしてもいいように...
-[Q] それはすごい。なんか興味出てきたぞ。・・・なるほどね...
-[A] そうです。何でもかんでもキャッシュするわけじゃないで...
-[Q] さっきの funcCache だけど、多分よく使うからもっと簡...
-[A] なるほど。じゃあこういうユーザ関数を作ったらどうです...
defFuncCache100 = function ()
{
dumpArg = dump(subarray(arg 0 size(arg) - 1)
eval(
format {
function %
{
funcCache (% 100)
{
%
}
}
} ("%" dumpArg dumpArg dump(arg[size(arg) - 1]...
)
}
// 上記があればこう書ける
func = defFuncCache100 (a b c)
{
重たい計算
}
// 注釈
// dump : 引数の内容を文字列に変換する、その文字列の前に...
// arg : 関数が受け取った引数全体
// subarray : 配列の一部を取得
// eval : 引数文字列を実行して結果を返す
// format : sprintf みたいなもの、文字列内の任意のキーワ...
-[Q] 本当にどのくらい速くなるのか楽しみだな。
-[A] そうですね。ある程度動くようになったら、いろんな言語...
** (6) [2017.05.17追記] キャンプに関する追記
-[Q]この言語自作ゼミの定員は何人ですか?
-[A]厳密な定員は決まっていません。集中コース全体で約30人...
-[Q]はっきり言って特に何がやりたいということはなくてとに...
-[A]その志(こころざし)はどうかと思いますが、しかしその...
-[Q]ぜひ受講してみたい集中コースがあるのだけど、きっと今...
-[A]えー、それはもったいないです。受講したいのならそこに...
** (7) [2017.05.30追記] 選考中のつぶやき
-すごいですね。素敵な応募が多くて、キャンプに来てもらいた...
-でもさすがにみんなは呼べません。だから心で泣きながら選ん...
-過去に言語を作ってみたけど挫折した人、今言語を作って頑張...
-誰が選んでもこの人を選ぶよなー、みたいな状況ではないです...
-残りのつぶやきは[Q&A]形式で書いてみます。
--[Q]年齢が若かったりすると、うーん、じゃあまた来年に!っ...
--[A]他の講師の選考基準ではそういうことがあるかもしれませ...
--[Q]自分は過去にちょっと「やんちゃ」なこともやったと書い...
--[A]全然まずくなんかないですよ。なるほどそういうことをや...
--[Q]自分は初心者感丸出しで書いてしまったけど、大丈夫です...
--[A]大丈夫です。[ユーザコース]の「初心者の気持ちを忘れて...
--[Q]他に心に残った応募はありましたか?
--[A]いっぱいありますよ!
---既存の大物言語の開発に関わっている人とか(びっくり!)
---自分はまだ言語を作ったりはしていないんだけどあるマイナ...
---みずみずしいくらいの初心者で、ああ自分もかつてはこんな...
--[Q]ちょっと違うかなと思った応募はありましたか?
--[A]違うと思ったわけではないですが、「プログラミング言語...
--[Q] [開発者コース]や[ライバルコース]の選考では実力重視...
--[A]まあ確かに実力は重視します。どうしてかって言うと、そ...
--[Q]ここを読んで、あ、自分のことだ!と思いました。
--[A]そうかもしれませんし、そうじゃないかもしれません。そ...
* こめんと欄
#comment
終了行:
* セキュリティキャンプ2017用の特設ページ
-(by [[K]], 2017.03.28)
** 基本情報
-タイトル: 言語自作ゼミ
-時間帯: 3日間連続
-概要:
--言語自作ゼミは,川合講師が担当します.
--講師が開発しているプログラミング言語「Essen」を題材とし...
--具体的に何をするかは各自の希望をもとに設定します.
//--より詳しい説明が http://khfdpl.osask.jp/wiki/?seccamp...
-必要機材: PCのみ
-事前学習: あり
-註: twitterではものづくりトラック(集中コース)は他のト...
--一日も早い訂正を期待していますが、まだ対応してもらえて...
** (1)背景情報
-現在、講師である川合はプログラミング言語を作っています。...
-しかし作っているうちに、初心者だけではなく上級者にとって...
-ちなみに作っている言語は「Essen」(えっせん)という名前...
--応募に際して確認する必要はないですが、もし興味があればE...
-どんな言語にしたいのか?
--COLOR(blue){''全体としてはC言語みたいな言語''}(でもコ...
--変数のCOLOR(blue){''宣言をしなくても代入できる''}
---でもCOLOR(blue){''宣言をすることもできて''}、その場合...
---これは関数の引数とかで引数ミスを検出したいときなどに有用
--COLOR(blue){''セミコロンを付けなくてもOK''}な言語(ちな...
a = 1 b = 2 // こんな感じで書いてOK
--COLOR(blue){''コンマを書かなくてもOK''}な言語(ちなみに...
a = func(1 2 3)
b = func(a + b c d)
c = func(-1, -2 4) // -2の前にコンマがないと引数の数が2...
--COLOR(blue){''実行速度は速くない''}
---しかしインラインC言語とか、インラインRubyなどを使うこ...
---でも実はインラインRubyとかがうまくいくかどうかちょっと...
---もちろんRubyなどを私が実装するわけではなく、インライン...
--C言語は関数を自由に作ることができる、C++なら型(クラス...
--変数についてはCOLOR(blue){''永続変数をサポート''}してい...
---永続変数というのは、プログラムを終了しても消えない変数...
--COLOR(blue){''宣言する方法を改良''}できる言語
---たとえばC言語では#defineが使えます。関数も比較的自由に...
---宣言する方法も改造できるべきです。そうすれば、今までに...
---気が付いたらまったく別の言語になっている可能性はありま...
** (2)キャンプでは何をするのか
-キャンプで学生がやることは以下のことを想定しています。当...
-[ユーザコース]
--川合が上記の言語を作るので、その言語を使ってみて、使い...
--分からないことはどんどん聞いていいです。そういう情報こ...
--また「ここはこうできたらいいのに」と思うところがあれば...
--バグやセキュリティホールを見つけたら教えてください。講...
--このコースの場合、この言語を使って何かプログラムを作っ...
-[開発者コース]
--川合が作る言語処理系を直接改造して開発を手伝います。こ...
--このコースの場合、どれだけたくさんの改良提案ができたか...
-[ライバルコース]
--学生は川合のライバルとなり、オリジナルの言語を開発しま...
--このコースの場合、自分のオリジナル言語をある程度完成さ...
-これらのコースは固定ではなく、学生は自分のスキルや関心に...
** (3)セキュリティは?
-この講義ではセキュリティは主たる要素ではありません。まず...
-そして言語にはバグやセキュリティホールがきっと出てくると...
-一般にセキュリティホールをつぶすと、不便さが増します。そ...
--あれも禁止、これも禁止としていけば、それは簡単に安全に...
** (4)どんな学生に受講してほしいのか
-''プログラミングが大好きな学生''
--そうでなければ始まりません! ちなみにセキュリティに関す...
--得意な言語はなんであっても構いません。
--プログラミングが大好きで、前からこの言語はここが不便だ...
-''事前学習に時間が取れる学生''
--試験期間(の前後)や修学旅行などの時期は事前学習を完全...
--自宅もしくは学校にPCがないと事前学習ができないと思いま...
-''優秀な学生じゃないとだめですか?''
--もちろん優秀な学生は大歓迎ですが、しかしそれほどには技...
** (5) [2017.05.11追記] Essenについて
-川合が作っているEssenについて別の角度から説明します。
--これを読めば言語を作ることの可能性を感じてもらえると思...
~
-[Q] Essenって何がそんなにすごいの?既存の言語にできなく...
-[A] そんなものはないです。EssenはC言語で書かれていますが...
-[Q] なーんだ、意味ないじゃん。じゃあ既存言語で十分だね。
-[A] 私はそうは思いませんが、あなたの意見は尊重します。あ...
-[Q] え、川合はEssenを作ったら使うつもりなの?
-[A] もちろんです。使わないものを作っても無駄じゃないです...
-[Q] Essenにしかできないことはないのに、どうしてわざわざ...
-[A] Essenは高速じゃないです。・・・ええとですね、そもそ...
-[Q] じゃあなんだよ。速度のほかに何があるわけ?
-[A] それは記述方法です。構文や文法です。「簡単に書くだけ...
-[Q] うーん、抽象的過ぎてわかんないな。もっと具体的に説明...
-[A] そうですね。・・・Essenでは当然のことながら適当な関...
func = function (a b c)
{
funcCache ((a b c) 100) // 何がキーなのかを教える、...
{
// 上記命令はキャッシュのテストもして、もしヒッ...
ここでがんばって重たい計算をする
}
}
-[Q] ほほう。ちょっと面白そうだな。
-[A] キャッシュは永続変数に格納されているので、プログラム...
-[Q] え、プログラムを中断して再開してもキャッシュは残るっ...
-[A] それはもちろん、funcCacheの後ろの { ... } の中も文字...
-[Q] そんなにキーが大きくなってもいいのか?
-[A] はい、いいです。というかキーを大きくしてもいいように...
-[Q] それはすごい。なんか興味出てきたぞ。・・・なるほどね...
-[A] そうです。何でもかんでもキャッシュするわけじゃないで...
-[Q] さっきの funcCache だけど、多分よく使うからもっと簡...
-[A] なるほど。じゃあこういうユーザ関数を作ったらどうです...
defFuncCache100 = function ()
{
dumpArg = dump(subarray(arg 0 size(arg) - 1)
eval(
format {
function %
{
funcCache (% 100)
{
%
}
}
} ("%" dumpArg dumpArg dump(arg[size(arg) - 1]...
)
}
// 上記があればこう書ける
func = defFuncCache100 (a b c)
{
重たい計算
}
// 注釈
// dump : 引数の内容を文字列に変換する、その文字列の前に...
// arg : 関数が受け取った引数全体
// subarray : 配列の一部を取得
// eval : 引数文字列を実行して結果を返す
// format : sprintf みたいなもの、文字列内の任意のキーワ...
-[Q] 本当にどのくらい速くなるのか楽しみだな。
-[A] そうですね。ある程度動くようになったら、いろんな言語...
** (6) [2017.05.17追記] キャンプに関する追記
-[Q]この言語自作ゼミの定員は何人ですか?
-[A]厳密な定員は決まっていません。集中コース全体で約30人...
-[Q]はっきり言って特に何がやりたいということはなくてとに...
-[A]その志(こころざし)はどうかと思いますが、しかしその...
-[Q]ぜひ受講してみたい集中コースがあるのだけど、きっと今...
-[A]えー、それはもったいないです。受講したいのならそこに...
** (7) [2017.05.30追記] 選考中のつぶやき
-すごいですね。素敵な応募が多くて、キャンプに来てもらいた...
-でもさすがにみんなは呼べません。だから心で泣きながら選ん...
-過去に言語を作ってみたけど挫折した人、今言語を作って頑張...
-誰が選んでもこの人を選ぶよなー、みたいな状況ではないです...
-残りのつぶやきは[Q&A]形式で書いてみます。
--[Q]年齢が若かったりすると、うーん、じゃあまた来年に!っ...
--[A]他の講師の選考基準ではそういうことがあるかもしれませ...
--[Q]自分は過去にちょっと「やんちゃ」なこともやったと書い...
--[A]全然まずくなんかないですよ。なるほどそういうことをや...
--[Q]自分は初心者感丸出しで書いてしまったけど、大丈夫です...
--[A]大丈夫です。[ユーザコース]の「初心者の気持ちを忘れて...
--[Q]他に心に残った応募はありましたか?
--[A]いっぱいありますよ!
---既存の大物言語の開発に関わっている人とか(びっくり!)
---自分はまだ言語を作ったりはしていないんだけどあるマイナ...
---みずみずしいくらいの初心者で、ああ自分もかつてはこんな...
--[Q]ちょっと違うかなと思った応募はありましたか?
--[A]違うと思ったわけではないですが、「プログラミング言語...
--[Q] [開発者コース]や[ライバルコース]の選考では実力重視...
--[A]まあ確かに実力は重視します。どうしてかって言うと、そ...
--[Q]ここを読んで、あ、自分のことだ!と思いました。
--[A]そうかもしれませんし、そうじゃないかもしれません。そ...
* こめんと欄
#comment
ページ名: