タグ

ブックマーク / qnighy.hatenablog.com (9)

  • C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ

    通常、C言語の関数ポインタは、クロージャではない。したがって、関数を部分適用したり、カリー化したり、ローカル変数をキャプチャーした関数ポインタを返したりすることはできない。しかし、実際にC言語が動作する環境のなかには、そのようなことが実現できるものがある。PowerPC64 System V ABIは、そのひとつである。 PowerPC64 System V ABIは、Linux等において高級言語のコードをPowerPC64機械語に翻訳するさいの取り決めである。 多くのABIでは、関数ポインタは関数の最初の命令のアドレスに翻訳されるが、PowerPC64 System V ABIはそれとは異なる定義をしている。具体的には、関数ポインタは以下のような構造体 struct Funptr { void *jump_target; /* ジャンプ先 */ void *initial_r2; /*

    C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ
    tyage
    tyage 2016/11/21
  • ランサムウェアを作ってみた(シェルスクリプトで) - 簡潔なQ

    ランサムウェアの暗号化部分についての実証コードを書いてみた。暗号の計算にはOpenSSLのコマンドが使えるので、シェルスクリプトを使って書いた。 github.com 注意 このコードを試して起こった損害について作者は責任を追わない。基的にdocuments/以下にあるテストファイルのみが操作対象だが、シェルスクリプトがザルなので空白を含むファイルなどが混ざっていると少し危いかもしれない。 このコードはランサムウェアの暗号化の動作を実証することを目的としたものであり、実際にランサムウェアなどのマルウェアに「応用」することを意図したものではない。もちろん、実際に身代金目的のランサムウェアを作って配布することは違法である可能性が高い。そもそも、このコードは暗号化部分の最低限の実装しかしていないので、実際にランサムウェアを作るにあたって役に立つことはほとんどないだろう。 はじめに ランサムウェ

    ランサムウェアを作ってみた(シェルスクリプトで) - 簡潔なQ
    tyage
    tyage 2016/07/15
  • Coqで独習するならどのページがいい?と聞かれたときのメモ - 簡潔なQ

    Download Coq(英語) ダウンロードしなければ何も始まらない。 Download | The Coq Proof Assistant ちなみにLinuxディストリならcoqideパッケージをインストールするのが吉 Coqの入門記事を書く会 そこそこ体系的な入門サイト 2010-09-02 - ひとり勉強会 2010-09-14 - ひとり勉強会 2010-09-19 - ひとり勉強会 2010-10-12 - ひとり勉強会 Coq 99 練習問題。直観主義論理における有名な証明を一通り解ける。 Functional Programming Memo: [Coq] Coq-99 : Part 1 anarchy proof 練習用サイト。途中から一気に難化するのが問題。 わからなかったら他の人の解答も見られる anarchy proof - Curry-Howard Isomorp

    Coqで独習するならどのページがいい?と聞かれたときのメモ - 簡潔なQ
    tyage
    tyage 2014/10/14
  • 高校生がアルゴリズムで世界に挑んできます - 簡潔なQ

    2011年7月22日から29日にかけて、IOI2011 (詳細は後述) がタイで開催されます。 以下の4名が日本代表として参加します。 村井 翔悟 (開成) 原 将己 (筑駒) ←自分です 今西 健介 (八千代松陰) 城下 慎也 (灘) 以下では、IOIに関してひと通り説明したあと、今年行われるライブ映像の配信とスコアボードの公開について説明します。 ぜひ見てね! 国際情報オリンピック(IOI)とは? 国際情報オリンピック(IOI)は、高校生向けの国際科学オリンピック*1の一つで、数理情報科学(Informatics)*2に関する知識、アルゴリズムの洞察力やプログラミングの能力を競うコンテストです。 ありていに言ってしまえば、TopCoderやICPCに代表される「(競技)プログラミングコンテスト」の一つと言えます。 日では日情報オリンピック(JOI)が実施され、選抜合宿で最も成績の良

    高校生がアルゴリズムで世界に挑んできます - 簡潔なQ
    tyage
    tyage 2011/07/20
    今年もがんばってください
  • 情報オリンピック参加者の皆さんへ - 簡潔なQ

    情報オリンピックに参加した皆さんこんにちは。僕はqnighyです。一応すごい人です。 予選で終わってしまった人も、選で終わってしまった人も、これから合宿に行けるという人もいると思いますが、これ以降も競技プログラミングに精進したい!という人のために、いち競技者としての経験から、ちょっとアドヴァイスを書いていきたいと思います。(僕自身実践できていないものもあります。) いろいろな大会に参加しましょう。 情報オリンピック以外にも、さまざまな競技プログラミングの大会が存在します。その一例を挙げますから、ぜひとも臆せず参加してみてください。 大会に参加したり、練習したりしないと、競技プログラミングの腕は上がらないようです。 SuperCon 東工大と阪大が主催する高校生向けのコンテストです。このコンテストの最大の特徴は、大学のスーパーコンピューターを借りてコンテストを行うということです。 Supe

    情報オリンピック参加者の皆さんへ - 簡潔なQ
    tyage
    tyage 2011/02/16
  • JOIは銀賞でした - 簡潔なQ

    20+20+20+6+20 japljの呪詛によって4番がエンバグしました。 詳細はあとで調べます。

    JOIは銀賞でした - 簡潔なQ
    tyage
    tyage 2011/02/16
    おめっとー
  • ここまでのIOI(メモ)#2 - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力

    Day4 Canada's Wonderland、いわゆる遊園地 バスの中でItalyな人々が歌いまくってた。Nel blu, di pinto di bluだけわかったので歌ってやった。 入園するところで荷物チェックされた 突然写真を撮られた。帰りに興味があれば買えということらしい いまいまカップリングぱない 目の前に滝があって、これがDay2のTaskではないかという話をしていた 高いところから振り子する絶叫マシンみたいのがあったんだけど、3人で乗っても一人20CADなのでやめた。 どーもくん人気すぎワロタ(参考) 午前はプール施設で遊んだ 僕は眼鏡を外すと眼つきが悪くなるようだ 主にウォータースライダーを楽しんだ。 semiexpが泳げない上にウォータースライダーもほとんど乗らなくて、ジェットコースター経験もないなどと言いだしておそろしかった そのため帰りたいと言いだし、semiex

    ここまでのIOI(メモ)#2 - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
    tyage
    tyage 2010/08/19
  • プログラミングの国際大会「国際情報オリンピック」に行ってきます。 - 簡潔なQ

    8月14日から8月21日にかけてカナダのWaterloo大学で開催される「第21回国際情報オリンピック」に日本代表として参加してまいります。 情報オリンピックについて 情報オリンピックは、数学オリンピックや、化学、物理、生物、天文学オリンピックなどと並ぶ、「科学オリンピック」の1つです。 ちなみに科学オリンピックは基的に高校生を対象としています。 数学オリンピックでは、数学の問題が出題され、その問題の答え(証明)を記述し、証明の正確さを競います。 情報オリンピックでは、問題を解くプログラムを書き、それを提出して、正しく解けたか、効率よく解けたかを競います。 情報オリンピックに要求されるのは、「情報科学」とか「計算機科学(コンピューターサイエンス)」とか呼ばれる分野の知識と、それを応用する力です。もちろん、プログラムが書けなければ話になりませんが。 情報オリンピックでは、ソフトウェアの開発

    プログラミングの国際大会「国際情報オリンピック」に行ってきます。 - 簡潔なQ
  • ■ - 簡潔なQ

    Q. サンプルタスクのGuessのサンプル解答および想定入出力に誤りがあるようですが。 A. 把握しました。修正します。報告ありがとうございます。 Q. 参加者の半数以上が同点だった場合、金メダルの授与条件とメダル全体の授与条件が矛盾すると思うのですが。 A. 普通起こりませんので、起きてから考えましょう。 Q. IOIのシラバスに変更はありますか。 A. 2年前から変更についての議論は為されてないようです。 Q. サンプルタスクのGameShowのC/C++のサンプル解答のシグネチャがおかしい(関数が値を返さないのにint型で宣言されている)のですが。 A. Pascalと同じく、void型で宣言するべきですね。同意します。番では気をつけるようにします。 (我々の中には、voidなんてものが無かった時代にC言語を勉強した者もいて、彼らに新しいトリックを教えるのは難しいことなのです。)

    ■ - 簡潔なQ
    tyage
    tyage 2010/08/01
  • 1