タグ

C言語に関するtakamR1のブックマーク (78)

  • C言語でもレガシーでも、TDD をやってやれないことはない(レガシーコード改善成分90%、TDD成分10%) - yujioramaの日記

    id:goyoki さんの次になるTDD Advent Calendar jp: 2011の9日目です。 まったく自重しない素敵エントリが続いているので、ここらで息抜きをしましょう。 TDD についての理論、情緒、実践についてはすでに語られてしまったので、現場で使われた話を書きたいと思います。 前提 このお話は フィクション です。 現実によく似た光景を見たり聞いたりしたとしても、それは幻想です。幻想のはずです。幻想ということにしてくださいお願いします。 はじめに そこには C 言語のシステムがありました。 規模にして数万行の中規模なシステム。 24時間365日動き続けることが要求されるもので、僕の仕事は、このシステムの中枢部をうまいこと改修することでした。 テストコードはあるものの、設計に大きな変更が入る前のプロダクトコードが対象となっていて、ユーティリティ関数以外のテストは全滅という、

    C言語でもレガシーでも、TDD をやってやれないことはない(レガシーコード改善成分90%、TDD成分10%) - yujioramaの日記
  • Kurusugawa – Kurusugawa Computer Inc.

    ビジネスに役立つ AI をお届けします 来栖川電算は AI 技術の研究開発から応用まで幅広いサービスを提供する名古屋工業大学発ベンチャー(2003 年設立)です。未踏ソフトウェア創造事業の採択者やソフトウェア分野の様々なコンテストの入賞者が在籍しています。最先端の AI 技術だけでなく、膨大な高品質データを生み出す技術、ハードウェアの限界性能を引き出す実装技術、高品質なソフトウェアを実現する設計技術にも定評があります。 手軽に使える様々な認識エンジン 来栖川電算の認識エンジンを活用すれば、センサーデータに埋め込まれた意味を手軽に抽出できます。種類ごとに用意された認識エンジンは教師データや設定を変えるだけで様々なタスクへ応用できます。LinuxAndroid・iOS 用のライブラリ、WebAPI、コマンドラインツールなどプログラマフレンドリーな SDK を提供しています。トレーニングやコン

    Kurusugawa – Kurusugawa Computer Inc.
  • JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)

    CERT C コーディングスタンダード 00. はじめに 01. プリプロセッサ (PRE) 02. 宣言と初期化 (DCL) 03. 式 (EXP) 04. 整数 (INT) 05. 浮動小数点 (FLP) 06. 配列 (ARR) 07. 文字と文字列 (STR) 08. メモリ管理 (MEM) 09. 入出力 (FIO) 10. 環境 (ENV) 11. シグナル (SIG) 12. エラー処理 (ERR) 13. Application Programming Interface (API) 14. 並行性 (CON) 49. 雑則 (MSC) 50. POSIX (POS) AA. 参考情報 BB. Definitions CC. 未定義の動作 DD. 未規定の動作 XX. お問い合わせ 00はじめに このページでは、JPCERTコーディネーションセンターが翻訳を行っている CE

    JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)
  • https://bigwhite-code.googlecode.com/svn/trunk/style_check_scripts/

  • CCFinder ホームページ 跡地

    (Webサイトでは、JavaScriptを使用しているため、一部のWebブラウザで警告が出ることがあります。ご了承ください。 ..... ) お知らせ 「旧版」のページを取り除きました。サイトの名称を変更しました。(2010/08/02) 「ユーザー登録」のページを取り除きました。(2010/06/01) ライセンスキーはオープンソースになったCCFinderXではもはや不要なので、「ユーザー登録」のページを5月末をめどに削除します。(2010/05/14) 10.2.7.4をリリースしました。特に問題がなければ最終バージョンとなる予定です。皆様、長らくのご愛顧ありがとうございました。 (2010/04/08) A. Lozano & M.l WermelingerのIWSCペーパー、およびその他にもいくつかの論文を追加しました。 (2010/03/11) お待たせいたしました。MIT

  • 日本のいま、そして未来を、世界に正しく伝える|株式会社ニューズ・ツー・ユーホールディングス

    Accurately conveying Japan, present and future, to the world. Mission Providing trustworthy information that deepens understanding of, and generates interest in, Japan. 世界中で、日に興味を持つ人を増やし、日についての理解を深めるために、私たちは、信頼できる情報を提供します。 Vision Contributing to a better world through the promotion of mutual understanding between Japan and various international communities. 日と世界の相互理解を推進することで、よりよい世界の実現に貢献します。

    日本のいま、そして未来を、世界に正しく伝える|株式会社ニューズ・ツー・ユーホールディングス
  • SourceMonitor

    SourceMonitor Version 3.5 NOTE: The author of SourceMonitor is retiring and the current version of SourceMonitor has been released as open source. The open source version of SourceMonitor, along with information on support, is available here.

    takamR1
    takamR1 2011/03/25
    ソースコード静的解析ツールSourceMonitor、最新のリリースをもって開発終了を宣言。
  • モジュール指向プログラミングのすすめ - 千里霧中

    C言語は「スコープを管理する言語機能が貧弱」「オブジェクト指向言語として設計されていない」といった要因から、C++Javaといったオブジェクト指向言語と比べ、大規模開発に向いていないとよく言われている。 相対的に見れば実際そうなのだけれども、そういった欠点は、伝統的なモジュール指向の構造化技法をコーディング規約で支えることによって、ある程度改善することもできる。今回はその一例として、学生時代の頃辺りから使ってきた「モジュール指向」とそれを支えるコーディング規約のセットを紹介したいと思う。 なお今回はCを対象にしているものの、他の手続き型言語でも同じアプローチの導入は十分可能だと考える。 以下、モジュール指向プログラミングの方針とその規約を示す。 ※モジュール指向という用語は他所でもらほら見られる言葉だが、大体今回述べる内容のものと似た意味合いで使われることが多い。今回の定義も特に問題のな

    モジュール指向プログラミングのすすめ - 千里霧中
  • 青島のしま〜Blue Islands〜 : シリアル通信(RS-232C)で送信・受信を行うプログラム

    takamR1
    takamR1 2010/07/26
    シリアル通信
  • ARM:コア・ファミリ < プロセッサ&データエンジン < プロダクト&ソリューション < TOP

    Cortexマイクロコントローラ・ソフトウェア・インタフェース規格(CMSIS)は、Cortex-M1またはCortex-M3プロセッサをベースとしたフィジカル・マイクロコントローラ・デバイスにソフトウェア・コンポーネントを導入する際の問題を解決します。将来のCortex-Mプロセッサ・コア(Cortex-Mxとして示す)にも対応します。CMSISは、多数のシリコン・ベンダやソフトウェア・ベンダとの緊密な協力で定義されており、ペリフェラル、リアルタイム・オペレーティング・システム、ミドルウェア・コンポーネントとのインタフェースに共通して使用可能です。 ARMは、CMSISの一環として、各種のコンパイラ実装に対応した以下のソフトウェア・レイヤを提供します。 コア・ペリフェラル・アクセス・レイヤ:名称定義、アドレス定義、コアのレジスタとペリフェラルにアクセスするためのヘルパ関数を含みます。デバ

    takamR1
    takamR1 2010/02/12
    コーディング標準
  • お手軽C言語でオブジェクト指向っぽいことに挑戦

    C言語でオブジェクト指向っぽいことに挑戦してみます。 はじめからオブジェクト指向言語を使えといわないでください(笑)。 これはTECHI Vol.15「リアルタイム/マルチタスクシステムの徹底研究」に 「Cによる抽象化プログラミング-抽象データ型の理由-」という章を読んで、 なるほどと思ったことのまとめです。この章の初出は1996年です。 といっても複雑なことをするのではなく、 「データ+手続き」をひとまとめにして取り扱いやすくするということを行います。 ところで、上記のに、 僕が、以前からおぼろげながら持っていた「オブジェクト指向」に近いものを感じました。 章のはじめにイラストが描いてあり、そこには「自分のことは自分でやろうそれがおとなだ」と いうプラカードをもったAbstractDataTypeくんがいます。プログラムの中で役にたってくれるのは、 まさに「自分のことは自分で面倒みれる

  • ソフトウェアデザイン館 Sage Plaisir 21

    <P> Masanori Toda's Home Page [Sage Plaisir 21] is used Frames. Excuse me, Your Brouser can not view the Frame Page. No frame page is <A href="first.htm">here</A>.<BR> </P> <P> 戸田匡紀のホームページ [Sage Plaisir 21] は、 フレーム機能を使っています。 残念ですが、あなたのブラウザには対応していません。 フレーム無しのページなら<A href="first.htm">こちら</A> です。<BR> </P>

    takamR1
    takamR1 2009/02/26
    C 言語によるオブジェクト記述法 COOL
  • 組み込みのためのC言語 (ワンチップマイコンのソフト開発)

    C言語の入門書は世の中にあふれています。 しかしそれらはPC(パソコン)用 が大半で組み込みを意識したものがありません。  ここでは主に組み込みを意識したC言語について説明します。 [▲上位階層] 2005-12-19 新規作成, 2006-03-14 更新 目次 C言語とは まずは動作させてみる 2-1 実行する前の準備 〜 スタートアップ 2-2 矩形波を出力する 他の言語との比較 3-1 VB (Visual Basic) 3-2 Java 3-2-1 Javaのメモリーの管理 3-2-2 Javaのリアルタイム性 3-2-3 組み込み用のJava 3-3 アセンブリ言語とマシン語 3-4 C++ 一般的な開発ツールの構成 4-1 開発の流れ 4-2 ツール 4-3 ファイル C言語の文法 5-1 全体的なこと 5-1-1 記述順序 5-1-2 実行順序 5-1-3 定義よりも先に

    takamR1
    takamR1 2009/02/25
    組み込みに特化した解説
  • 株式会社エス・スリー・フォー » Cによるオブジェクト指向’風’プログラミング

    Java/C++ではオブジェクト・インスタンスにメッセージを送ってその結果を受け取るとき、 result instance.message(parameter); のような記述となります。例えばPackからCardを一枚引き、Packに戻すJavaコードは: Pack pack = new Pack(); Card card = pack.deal(); // Cardを一枚引く pack.replace(card); // (引いたCardを)packに戻す 同様のことをCで行なうためのスタイルを考えてましょう。 まず、抽象データはその詳細を外部に公開してはならないので、ヘッダには構造体のポインタのみを公開します。 typedef struct card_struct* card; このとき、card_structの実際の構造(メンバ)はヘッダには明記せず、cardの実装部に置きます。

  • エンディアン変換/判別関数・マクロ集 (C/C++,(ほぼ?) 処理系・OS 非依存)

    気が向いたら書く. 特定のメモリアドレス範囲にマップされたデバイスのエンディアン判定. デバイス (アドレス) が異なればエンディアンも異なる可能性がある. (実際にそういうデバイスを使ったことがあるわけではなく, 可能性として考えてみているだけ.) レジスタ演算だけでエンディアン変換ができ,メモリアクセス不要. (バイト単位の) シフトが高速に行える CPU,あるいは (シフトに比べて) メモリアクセスが遅い CPU 向き. (バイト単位の) シフトが高速に行えない CPU では, 任意エンディアン変換はエンディアン反転以上に効率が悪い. データ長が長いと,それだけレジスタを多く使用する. ⇒ 同時進行中の,レジスタを使う別の処理の速度を低下させる場合がある. レジスタ長より長いデータは効率良く扱えない. 符号付整数型にトラップ表現が存在する処理系では, エンディアン変換の途中結果がトラ

  • http://dev.frozeneskimo.com/software_projects:libgis

    takamR1
    takamR1 2008/10/22
    S-RecordとIntel-Hex
  • Applying Observer Pattern in C++ Applications

  • C言語におけるTDD

    1. 概要 今日、Java、C#等のオブジェクト指向言語においてxUnitを用いた単体テストの自動化が広く行われていますが、C言語におけるテストフレームワーク利用については今ひとつ普及しているとは言えません。 組み込みソフトウェアを中心にC言語によるソフトウェア開発は広く行われており、出荷後の修正の困難さからもテストフレームワーク利用による単体テスト自動化による恩恵は大きいと考えます。 C言語におけるテストフレームワーク利用の問題点および問題点を解決する手法について書きます。 2. 利用するテストフレームワーク 手法は CUnit for Mr.Andoにおいて検証、実装を行いました。 手法はテストフレームワークに依存しないため、同様のC言語におけるテストフレームワークにおいて使用可能です。(Cunit等でも使用可能) 3. C言語における単体テスト オブジェクト指向言語