タグ

cに関するnak2kのブックマーク (17)

  • JNIより簡単にJavaとC/C++をつなぐ「JNA」とは(1/4)-@IT

    インターネットの普及に加えて、リッチクライアント/RIAの発展とともに、アプリケーションの形態は、C/S(クライアント/サーバ)システムから、Webアプリケーションシステムにシフトしています。一般の情報発信システムだけではなく、企業の基幹情報システムまで、盛んにWebアプリケーションで構築するようになりました。 この変化の主役であるといわれる、Java技術は、Webアプリケーションシステムの発展とともに、ネットワークの親和性や、プラットフォーム適用の多様性で、広く受け入れられて、Webアプリケーションシステム開発の基盤技術になっています。 これまでのC/Sシステムでは、サーバロジックはC/C++で実装されるケースが一般的でした。C/SシステムからWebアプリケーションシステムにシフトする際に、Java技術を導入することを決めた場合、Java技術で、すべて新規開発するのは1つの選択肢ですが、

  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録

    一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つけたのでコードを書いてみました。 この問題は ハッカーのたのしみ―物のプログラマはいかにして問題を解くか (Google book search で原著 Hacker's delight が読めたのでそれで済ませた) で number of trailing zeros (ntz) として紹介されています。bit で考えたときに右側に 0 がいくつあるかを数えるもの。1 だと 0、2 だと 1、0x80 なら 7、12 なら 2 といったぐあい。0 のときに表題どおりの問題として考えるといくつを返すの?ってことになるので、

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
  • ウェブ開発に有用そうなC/C++ ライブラリについてのまとめ - TokuLog 改めB日記

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • SC: The SC Language System

    Japanese / English SC言語は,Common Lispで実装された,S式の(Scheme風の)構文を持つC言語です.たとえば,以下のようなCコード long sum(long *ar, int n){ long s=0; int i=0; do{ if (i >= n) break; s += ar[i++]; } while(1); return s; } を,SCでは, (def (sum ar n) (fn long (ptr long) int) (def s long 0) (def i int 0) (do-while 1 (if (>= i n) (break)) (+= s (aref ar (inc i))) ) (return s) ) と書くことができます. また,拡張SC言語から別のSC言語への「変形規則」

    nak2k
    nak2k 2008/06/16
  • JavaScriptCore (Safari の JavaScript エンジン) を使って C 言語から JavaScript を実行する - IT戦記

    はじめに JavaScriptCore (WebKit/Safari の JavaScript エンジン) を C 言語に組込む方法を調べてみました。 解説はソースコード中のコメントを見てください。 まず 以下のコードを hoge.c とかいう名前で保存します。 #include <JavaScriptCore/JavaScriptCore.h> static JSValueRef jsGlobalPrint( JSContextRef ctx, JSObjectRef jobj, JSObjectRef jobjThis, size_t argLen, const JSObjectRef args[], JSValueRef* jobjExp); int main(int argc, char** argv) { if (argc == 1) exit(0); // ---- グローバル

    JavaScriptCore (Safari の JavaScript エンジン) を使って C 言語から JavaScript を実行する - IT戦記
  • JavaScriptCore を自分でビルドして、遊んでみる - IT戦記

    http://d.hatena.ne.jp/amachang/20080610/1213099780 の続きです。 どうせなら JavaScriptCore も自分でビルドしようぜ!ってことで JavaScriptCore のソースを持ってくる $ svn co http://svn.webkit.org/repository/webkit/trunk/JavaScriptCore/ A JavaScriptCore/os-win32 A JavaScriptCore/os-win32/stdint.h A JavaScriptCore/os-win32/stdbool.h A JavaScriptCore/profiler A JavaScriptCore/profiler/Profile.cpp A JavaScriptCore/profiler/Profiler.cpp A Java

    JavaScriptCore を自分でビルドして、遊んでみる - IT戦記
  • mod_mod: Apache module を動的にコンパイルして実行する Apache module : DSAS開発者の部屋

    現在 WEBアプリケーションの開発言語といえばいわゆる Light Weight Langage が主流の様な気がしますが、C言語で WEBアプリケーションを書きた いと思った時、どのような方法があるでしょうか。一つはコンパイルした実行 オブジェクトを CGI として呼び出す方法、もう一つは apache module を書く という方法があると思います。 CGI の場合プロセス起動のオーバーヘッドがありますが apache module の 場合非常に高速です、にも関わらず apache module による WEB アプリケーショ ンの開発があまり流行っていないのはやはり、コード変更の度にコンパイルし なければならない事と、反映の際に apache を再起動しなければならない事が 原因ではないかと思います。 そこで、apache module っぽい C言語のコードをサーバー上で動的に

    mod_mod: Apache module を動的にコンパイルして実行する Apache module : DSAS開発者の部屋
  • Tokyo Cabinet

    Our team of highly trained cybersecurity professionals provides expertise in compliance, tool assessments, threat hunting, incident response and more. Critical Start is leading the way in Managed Detection and Response (MDR) services. With a unique approach that treats every security alert as equal, Critical Start's proprietary Trusted Behavior Registry allows security analysts to resolve every al

  • C editing with VIM HOWTO

    この文書は、C 言語やC++, Javaといった構文が似た他の言語で 書いたファイルを編集する際の入門編となるものです。 Table of Contents1. はじめに2. 動きまわる2.1. w, e, および b のキーストローク2.2. {, }, [[ と ]] のキーストローク2.3. % キーストローク3. C のファイルの中の勝手な位置にジャンプ3.1. ctags3.2. マーク3.3. gd キーストローク4. 単語の自動補完5. 自動的な整形5.1. 桁数の制限5.2. コードを自動的にインデントする5.3. 注釈6. 複数のファイルを編集する7. Quickfix8. 著作権9. 参考文献10. 日語版謝辞

    nak2k
    nak2k 2007/08/28
  • AutotoolsでHello World! - mir the developer

    AutotoolsでHelloWorldをやってみたのでメモしておきます。GNU Autotoolsとはautoconf、automake、libtoolといったC/C++プログラムを容易にかつポータブルにビルド可能にするためのツール群の呼び名とのことです。 分かりやすく言うと、自分のプログラムを↓↓↓でビルド&インストールできるようにしてくれるすごい奴らということです。 ./configure make sudo make install上記コマンド実行時にはconfigureスクリプト、Makefileなどが活躍するわけですが、これらは大抵、プログラマの手作業で作られたファイルではありません。規模の大きなソフトウェアほどこういったファイルを手作業で作るのは無理なので、代わりにもっとプログラマに優しいAutotools用の入力ファイルを作って、そこから自動生成させるのが良いということにな

    AutotoolsでHello World! - mir the developer
  • netswitch! | RubyInlineがすごい

    Posted by nanki Mon, 12 Mar 2007 05:14:00 GMT Rubyコード中にCのコードを埋め込めるRubyInlineを使って、 ボトルネックとなっているメソッドを置き換える。 # rubyinline.rb def benchmark s = "a" * 10000 test = Test.new t = Time.now 1000.times{test.string_xor(s, s)} Time.now - t end class Test def string_xor(str1, str2) result = str1.clone str1.length.times do |i| result[i] ^= str2[i] end result end end b1 = benchmark begin require 'inline' class T

    nak2k
    nak2k 2007/03/13
  • ひたすら読みにくいCコード:Geekなぺーじ

    「The International Obfuscated C Code Contest」という面白いコンテストがあります。 1984年から行われているこのコンテストは、どれだけ読みにくいC言語プログラムを書けるか競うものです。 wikipediaでは、以下のように説明されています。 IOCCCとは「The International Obfuscated C Code Contest(国際邪悪なCコードコンテスト)」の略称。汚く読みづらいC言語コードをあえて書き、その汚さを競うというC言語ハッカーの奇祭である。むろんただ汚ければよいというわけではなく、目にした瞬間のインパクト、実行結果の美しさなど、さまざまな要因でアーティスティックなものが選ばれる。多くのコードはそもそも全くC言語に見えない。コード全体がアスキーアートになっているものなどが典型的である。 第一回大会は1984年に行われ、

    nak2k
    nak2k 2007/01/12
  • clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション

    Emacs エディターで C 言語のプログラムを書く人向けに、入門用の解説がないように思う。そこで、知っておくと便利な機能をまとめてみた。 読者は、Emacs の操作とカスタマイズが最低限できる人を対象にしている。つまり、C-x C-f といったショートカット・キーが使えて、.emacs の設定ファイルがいじれる人。各機能について、基的な使い方とその効果、あと最低限の設定について書き出した。 目次 ソースの色付け インデント アラインメント コメント info マニュアル スペル・チェック タグ・ジャンプ 関数名の補完入力 コンパイルとエラー行ジャンプ ChangeLog ファイル 1. ソースの色付け Emacs は、C 言語のソース・ファイルを解析して、if や for といったキーワードに対して、自動で色を付ける。 色を付けることでソースにメリハリが生まれ、可読性が上がる。また、ス

    clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション
    nak2k
    nak2k 2006/12/18
    ちょうどEclipseからEmacsに移行したばかりなのでこういうエントリーはありがたい。
  • 計算物理のためのC/C++言語入門

    Last revised on May 25, 2000 UNIX & XWindow 環境における C/C++プログラミング言語の基礎とその計算物理への応用を解説します。 このホームページの古い版の偽ミラーサイトが存在するのでご注意ください。 物のサイトは http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/ です。 前書き 推奨図書一覧 C言語とC++言語の基礎文法の初心者向け解説 (プログラム初心者を対象としたC/C++言語の入門です) 第1章 C言語とC++言語の役割 第2章 簡単な計算 第3章 ループで繰り返し計算 第4章 配列で大量データ処理 第5章 関数で計算の分担 第6章 文字列の操作 第7章 ファイルの操作 第8章 グラフィック(XWindow System利用者向け) 高校物理の計算例 (高校生を対象として初歩的な物

  • Apache Portable Runtime 1.2.6 - C言語ベースで互換性のある実行環境を | エンタープライズ | マイコミジャーナル

    The Apache Portable Runtime Projectは25日(米国時間)、Apache Portable Runtimeの最新版であるApache Portable Runtime 1.2.6を公開したことを発表した。Apache Portable Runtime 1.2.6はC言語で作成されたインフラストラクチャライブラリ。OSに依存しない共通ライブラリを提供する。 Apache Portable Runtime 1.2.6はApache License Version 2.0のもとで提供されているオープンソースソフトウェア。Apache Portable Runtime 1.2.6においてサポートされている主なプラットフォームは次のとおり。 UNIX Windows Netware Mac OS X OS/2 BeOS Apache Portable Runtime

  • 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

    普通のやつらの下を行け: C でバックトレース表示 普通のやつらの下を行けの第2回として、今回は glibc の関数を使って C でバックトレース (スタックトレース) の表示を行ってみます。 バックトレースとは バックトレースとは、大ざっぱに言うと、現在の関数に至るまでの道筋です。たとえば、次の Ruby プログラムを実行すると、 1 / 0 の行で例外が発生して、バックトレースの表示とともにプログラムは異常終了します。 def foo 1 / 0 end def main foo end main この例では main から foo を呼び foo の中の 1 / 0 の部分で例外が発生しています。 % ruby divide-by-zero.rb divide-by-zero.rb:2:in `/': divided by 0 (ZeroDivisionError) from div

    nak2k
    nak2k 2005/10/25
  • 1