タグ

cとCに関するfbisのブックマーク (30)

  • ウワサのBlawnを触ってみた - Qiita

    どんな言語なの 独自の系統の文法を持つシステムプログラミング言語のようです。コンパイラのツールスタックはflex, bison, LLVMと定番のツールを使い熟して書かれています。 Blawnの特徴は 型名の記述が一切不要 構文の可読性が高い すべての関数/クラスがC++でいうところのテンプレート関数/クラス コンパイル速度と実行速度が速い メモリが安全 とのこと。 型の記述が不要なのは型推論に因るものですが、型推論を知らない人には何をやってるのか分からないようで、混乱を生んでいますね。 下記の記事なども参考にして下さい。 人でもわかる型推論 型推論に関する最近の話題への雑感 可読性については各自で判断して下さい。 関数/クラスがテンプレートになっているのは少し使ってみたら分かるかと思います。後で触れます。 コンパイル速度と実行速度が速いというのは、コンパイルに関してはあんまり遅くなるよう

    ウワサのBlawnを触ってみた - Qiita
  • C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita

    インクルードするだけで使えるNon-movingで正確なGCをC言語用に作りました。 行数がコメントを除いて100行に満たない非常に小さなライブラリです。 GCのアルゴリズムとしてはCheneyのコピーGCを採用しています。 通常のCheneyのコピーGCではメモリ空間のうち半分が無駄になってしまいメモリ効率が悪かったり、 GC発生時にオブジェクトが移動してしまいC言語のようなポインタを直接触れる言語との相性が悪いという欠点がありました。 今回はヒープ全体を二重連結リストとして管理することでそのような問題を解決しています。 ちなみにこれはTreadmill GCのアイデアと同じです。(が、アルゴリズム自体はTreadmill GCではありません。) APILinuxのlist.hに非常に近い見た目になっています。 ある構造体をgcで管理したい場合はstruct gc_head型のメンバを

    C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
    fbis
    fbis 2017/10/10
  • 今、Cで開発するためのスタンダードを知るための本 - L'eclat des jours(2013-09-30)

    _ 今、Cで開発するためのスタンダードを知るための 例によってアスキーの鈴木さんから、をもらった。花井さんのモダンC言語プログラミングだ。なお、似たような題の洋書があって、しかも花井さんは翻訳もするので、そのの翻訳書と勘違いされる可能性もありそうだが、完全にオリジナルだ。 Cは、Unixと共に(というか少し遅れて)生まれたということは、すでに40年以上の歴史があり、それだけの年月がたてば、COBOLなどと同じく老害言語と言われてもこれっぽっちもおかしくはない。 ところが、COBOLと異なり開発者市場がどんどん先細り(あるいは固定化)されるということはなく、むしろ増えている。それどころか最近の調査では最も利用されている(TIOBE 2013)。 一方、C++が先鞭をつけたビジネスプログラミングへのオブジェクト指向プログラミングの適用は、Java、Objective-C、C#と種類を増や

    fbis
    fbis 2013/10/02
  • 本の虫: 邪悪なC形式のキャストにしかできないこと

    注意:邪悪で汚らわしいC形式のキャストは、いやしくもC++プログラマたる者は、使うべからず C++では、玉虫色のC形式のキャストの機能を、三つに分割した。static_cast、reinterpret_cast、const_castである。しかし、この三種のキャストでは、C形式のキャストを完全に代替できないという声をよく聞く。曰く、「どうしても書けないキャストがある」と。 それはよく聞く話だが、では実際にどのようなキャストなのかということは、誰も審らかにしない。誰も知らないキャストであれば、特に使えなくても問題ないはずだ。ただし、「C形式のキャストならばできるキャストが、新しいキャストを組み合わせてもできない。どんなキャストかは知らないが、とにかくできないと聞いている。故に新しいキャストはクソだ」などという論調で、C++の改良されたキャストを使わぬC畑の外道がしゃしゃり出てくるのも困る。そ

    fbis
    fbis 2010/07/06
  • wakaponさんの超☆掃き溜め帳: perl5の実装でよく出てくるマクロの備忘帳

    久々にperl5の実装をごそごそ覗いていたら忘れていたので手を動かしながらリハビリんぐ。まずは基的なマクロやデータ構造から思い出してみるために、PerlInterpreter構造体周辺で頻出のマクロを切りだし、手元で動作させてみる。コードは以下のとおり(http://gist.github.com/405601)。 test.c

    fbis
    fbis 2010/06/01
  • Sorekika 【第349回 C調言語】

    fbis
    fbis 2010/04/30
  • 10進数を2進数に変換表示するC言語プログラム

    ソースコード // filename: dtob.c // convert decimal to binary #include <stdio.h> const int BitSize = sizeof(int) * 8; // 整数型のビットサイズを算出 void dtob(int x) { int bit = 1, i; char c[BitSize]; for (i = 0; i < BitSize; i++) { if (x & bit) c&#91;i&#93; = '1'; else c&#91;i&#93; = '0'; bit <<= 1; } // 計算結果の表示 printf("2進数: "); for ( i = BitSize - 1; i >= 0; i-- ) { putchar(c[i]); } printf("\n"); } int main() { int

    10進数を2進数に変換表示するC言語プログラム
    fbis
    fbis 2009/06/20
  • PHPでは"0x0A"=="10"がtrue | 水無月ばけらのえび日記

    公開: 2024年3月6日23時40分頃 「PHPの比較の素晴らしさ加減は正常 (anond.hatelabo.jp)」。 PHPでは"0x0A"=="10"がtrueになるのに、"0x0A" == "012"はfalseという話。無茶な話だなぁと思いつつも、実はマニュアルを見るとちゃんと書かれていたりするのですよね。

    fbis
    fbis 2009/06/19
    コメント欄も ”strtod()が16進数を受け付けるようになったのはC99からなんですが、GCCを除く世の中の大半のCコンパイラはいまだにC90です。”
  • プログラミング言語を作る

    このページの目的は、「独自のプログラミング言語を作る」ことです。 「プログラミング言語を作る」というのは、 やったことのない方からすれば、ずいぶん無謀な目標に見えるのかもしれません。 でも、いくつかの基礎知識さえ修得すれば、技術的には、 実はそんなに難しいものでもありません。 だったら、ひとつぐらい作ってみたいと思いませんか? なにしろプログラミング言語を作るなんて、 いかにもかっこ良さげじゃないですか。 私は作ってみたいと思いました。だから作ります。 プログラミング言語なんてもう山ほどあるのに、 今さら新しい言語なんて付け足して何をしたいんだよ! などというツッコミは入れてはいけません。 「なぜプログラミング言語なんか作るんですか?」 と聞かれたら、その答は そこにyaccがあるからだ。 で充分だろうと私は思います(yaccが何かは後述します)。 というわけで―― ただ私なんぞが新言語を

  • 100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog

    例の冷却ファンを修理してもらいに秋葉原に行ったのですが、最近の同人ゲームのクオリティはすごいなあと感心していたら、その二階はもっととんでもないことになってて、ひとつ大人になってしまったmikioです。今回は、Tokyo Cabinetのテンプレート直列化機能を駆使して、たった100行のCプログラムでWebチャットシステムを実装してみます。 古式ゆかしいWebチャットシステム 10年くらい前にCGIスクリプトでチャットシステムを作るのが流行していたのを覚えている方も多いと思います。チャットログは現在のようにデータベースサーバに転送して格納するのではなく、ローカルファイルシステム上のファイルにCSVやTSVなどのフォーマットで格納したり、同じくローカルのDBMファイルに格納するのが主流でした。2ちゃんねるの「datファイル」もそのようなデータファイルの一種と言えるでしょう。 その頃から、CGI

    100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog
  • memologue - C/C++の定数の型の話, C90/C99の差分のびみょーな話

    Cのソースコードに m = 195; とか n = 0xffffffff; とか書いたときの定数(右辺)の型って、なんであるかご存じでしょうか? また、C90(1990年版のISO C言語規格)とC99(1999年版のそれ)ではその型が微妙に異なったりすることがあるんですが、ご存じでしょうか? さらには、お使いのマシンがILP32であるかLP64であるかLLP64であるかによっても、微妙に型が違ってきたりするんですが、それについてはどうでしょうか? えーもちろん、普段は「Uがついてなかったらint, Uがついてたらunsigned intジャネーノ?」くらいの理解でも殆ど不自由しないわけですが、詳細な理解がないとハマるケースも稀にあります。 私はというと、上に書いたような事は、C90/99の差違を除いてはだいたい理解しているつもりだったのですが、C90/99の差異について無頓着だったがため

    memologue - C/C++の定数の型の話, C90/C99の差分のびみょーな話
    fbis
    fbis 2009/06/04
  • tokuhirom blog

    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

    fbis
    fbis 2009/04/02
  • 2NT -無料ブログ 無料ホームページ 等-

  • いきなりCの方がよっぽど難しい : 404 Blog Not Found

    2008年12月17日12:30 カテゴリLightweight Languages いきなりCの方がよっぽど難しい さすがにJavaPHPはなかったけど、高級言語を先に学ぶというのは今にはじまったことじゃない。 304 Not Modified: プログラミング初心者はギークから学べるのか そんな私が学んできてずっと思っていたことは、私はC言語から学び、JavaPHPと進んできたが、今の人はいきなりJavaPHPから学ぶのである。構造化プログラミング言語からオブジェクト指向言語へと順を追うのではなく、いきなりオブジェクト指向言語を学ぶのだ。はっきりいって理解できるのか非常に疑問にう。404 Blog Not Found:初心者向け言語もいろいろComputer Scienceをきちんと教えている学校の多くは、最初の一年の前半に scheme を教えて、後半に C と assembl

    いきなりCの方がよっぽど難しい : 404 Blog Not Found
  • kur.jp - C言語入門者がポインタで躓く3つの理由

    kur.jp バイオリンと自転車をこよなく愛する大学院生のチラシの裏.たまーに技術的なことも書いたりするかも知れません. Home About Me Link 先日,とある一部上場企業で,「技術系新入社員の方にC言語を教える」と言う,とても楽しいイベントがありました. この講義では,Windows環境にCygwinのインストールから始まって,関数やポインタや構造体等を学び,10日かけてC言語を一通り使えるようになってもらおうと言うものです.さすがに業務として受講しているからか受講生は真剣そのもの.教えるほうにも,ついつい熱が入ります. ところで,この講義では,座学の時間よりも演習の時間をたっぷり取って,受講生に,自分の手を動かしてプログラムを組んでもらっています.具体的には,講義時 間の3分の2以上を演習と,その解説に当てています.演習時間中は,教室の中を歩き回って,どんなプログラムを書い

    fbis
    fbis 2008/07/15
  • なぜC言語は習得が困難だと思うのか3つの理由 - 牌語備忘録 -pygo

    なぜ、私はC言語を学習することに対して躊躇してしまうのか。『C言語撃退講座 ~K&Rは置いて、俺の話を聞け』を読んで思ったことなど。(ちなみにCの経験なし) 『C言語撃退講座』「なぜ習得が困難か(p44)」の自分的要約 難しいのは言語の理解より、レジスタ・メモリ・ビットやバイトの理解。 言語仕様による開発効率の低下による難易度の上昇。(特定用途に特化した言語に比べて) 言語と(拡張)ライブラリとの区別がついてないから。 それ以前に自分的困難な(躊躇する)理由は Cはプログラムが長い やっぱりポインタ? お固い の3つだと思われる。 1.Cはプログラムが長い たとえばHellow World!でさえ(Wikipediaから引用) C # include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } Pyth

    fbis
    fbis 2008/07/07
  • HOMMEZ公式オンラインショップ

    HOMMEZ(オムズ)は男性の心と身体の健康を支援し、一人でも多くの人が子供を得る幸せや男性としての喜びを享受できる社会の実現を目指しています。男性の妊活、活力にまつわる情報や商品の力で性や妊活に悩む男性が効率的に納得感を持って活動できる機会を創出します。

    fbis
    fbis 2008/03/12
    gcc g++ cygwin
  • http://www.kumikomi.net/article/explanation/2003/10kumi/13.html

    fbis
    fbis 2008/03/12
    volatile
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    fbis
    fbis 2008/03/12
    union
  • はてなブログ | 無料ブログを作成しよう

    2024夏休み旅行 神戸・2日目【前編】 zfinchyan.hatenablog.com ↑1日目はこちら 6:50 わたしと夫だけ先に起床 前日に買っておいたお芋のパンで朝ごはん 昨日の疲れからか、なかなか息子たちが起きてこなかったので、ゆっくり寝かせてから10:00にホテルの下にあるプレイゾーンに行って、パターゴルフやバス…

    はてなブログ | 無料ブログを作成しよう
    fbis
    fbis 2008/01/09