You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
JerryScript is the lightweight JavaScript engine intended to run on a very constrained devices such as microcontrollers: Only few kilobytes of RAM available to the engine (<64 KB RAM) Constrained ROM space for the code of the engine (<200 KB ROM) The engine supports on-device compilation, execution and provides access to peripherals from JavaScript. To learn more, please visit the project on GitHu
最近、基礎文法最速マスターというプログラミング言語の解説が流行ってるようなので、便乗してみた。個人的にはC++やPythonの方が慣れ親しんでいるのだが、自分でも勉強できるように普段使っていない言語を書いてみることにした。以前にここのブログで言及した言語、Processing、Erlang、Lua、PowerShellなどの中でもErlangとLuaに興味があったので、比較的書きやすいLuaを選んでみた。 何故Luaなのか? Wikipediaによると、Luaはブラジル・リオデジャネイロのカトリカ大学で生まれた手続き型言語だ。高速な動作、高い移植性、組み込みの容易さが特徴だ。また、ホストプログラムへの組み込みが容易であることもあって、コンピュータゲームなどで利用されている。有名どころでは、PlayStation HomeやWorld of Warcraftなどがある。また、小飼弾氏もなんて
ruby-libvirtのソースコードを読んでいたら、何やら怪しげなマクロが。 67 #define generic_get(kind, v) \ 68 do { \ 69 vir##kind##Ptr ptr; \ 70 Data_Get_Struct(v, vir##kind, ptr); \ 71 if (!ptr) \ 72 rb_raise(rb_eArgError, #kind " has been freed"); \ 73 return ptr; \ 74 } while (0); 75 シャープだと!しかも2つだと!見たことないぞ! というわけで引数マクロについてちょっと実験してみました。 基本的な引数付きマクロ まずは基本的な引数マクロ。 1 #include <stdio.h> 2 3 #define test_puts(hoge) \ 4 do { \ 5 hoge
C 言語によるオブジェクト記述法 COOL ver.2 C-language's Object Oriented Language ver.2 [検索] 目次 0. はじめに 1. クラスの記述, 属性の記述 2. 操作の記述 3. クラス属性の記述、定数の記述 4. 初期化操作と後始末操作の記述 4-1.処理効率優先インターフェイス 4-2.再コンパイル不要インターフェイス 4-3.動的バインディング・インターフェイス 5. 状態取得操作と状態設定操作とイベントハンドラの記述 6. 集約の記述、継承の記述 6-1.集約の記述 6-2.継承の記述 6-3.多重継承の記述 6-4.重複継承の記述 6-5.動的継承の記述 7. 多態性(多相性)、インターフェイス継承の記述 7-1.多態性の記述 7-2.多態性を持った生成の記述 7-3.多重継承の多態性の記述 7-4.重複継承の多態性の記述 7
『デザインパターン』 うんちくできると、かっこよさそうだよね~。でもあんな分厚い本読んでもピンとこないし、だいたいオブジェクト指向ってなに?なにが便利なのかよく分からんのだけど。いいじゃんなんでも。できればいいんだよ、できれば。 な~んて、思っていても、なんとなく オブジェクト指向が気になっている システム開発者は、多いのではないでしょうか?かくいう 私もそんな者の一人でした。 しかし、これだけ もてはやされているオブジェクト指向です。 なんか、便利なはずです。 そこで、私は、GOFのデザインパターン[1]を、できるだけシンプルに表現した、小さな小さなプログラム ~デザインパターンの骸骨たち~ を作ってみました。骸骨達 を骨の髄までしゃぶり尽くつくすせば、オブジェクト指向の真髄まで味わうことができるかも。!? 『デザインパターンの骸骨たち(RE-BONE)』 では、内容を大幅に見直し、Ja
Interactive GCC Interactive GCC (igcc) is a real-eval-print loop (REPL) for C/C++ programmers. It can be used like this: $ ./igcc g++> int a = 5; g++> a += 2; g++> cout << a << endl; 7 g++> --a; g++> cout << a << endl; 6 g++> It is possible to include header files you need like this: $ ./igcc g++> #include <vector> g++> vector<int> myvec; g++> myvec.push_back( 17 ); g++> printf( "%d\n", myvec.size
C 言語でリトル・エンディアンとビッグ・エンディアンの両方を扱うコードを書いていて、いい加減、めんどくさく感じ始めたので、Perl 言語の pack/unpack のように、nNvV テンプレートで一発変換できるようにしてみました。C 言語で pack/unpack を使う元ネタは Brian W. Kernighan、Rob Pike「プログラミング作法」第九章(日本語訳本では 294 ページ)に見られ、8 ビットとビッグ・エンディアン 16 ビットを pack/unpack する実装が記載されています。それを膨らませて、16 ビット、32 ビットのリトル・エンディアンとビッグ・エンディアンも扱えるようにしてみました。テンプレート文字は Perl に合わせて CnNvV の 5 種類を使えます。 ほとんどPerl のコードでもあり、「プログラミング作法」のコードのものでもあり、ライセンス
とてもエキサイティングな本に出会い、一気に読んでしまいました。感想を書こうと思います。 モダンC言語プログラミング - 花井志生 https://amzn.to/3DKnQHT ターゲット読者層は組込み分野!# この本のターゲット読者はズバリ、組込みエンジニア。ソースコードのサンプルも、ズバリ組込みな内容を扱っています。C言語を使う人=組込みの人と決めつけているよう。書籍のあちこちで、このアプローチを組込み開発で適応するためにはどうすればいいかという考察が入るのがよい。 TIOBEというプログラミング言語の統計を見ると、C言語を利用している人がプログラマの2割程度いることがわかる。自分はこのデータを初めて知ったけれども、まずこの事実をしれたことは嬉しい事だ。C言語はいかに重要なのかという論題が冒頭で熱く語られる。 www.tiobe.com/content/paperinfo/tpci/i
文字列を区切り文字で分解する 【書式】 #include <string.h> char *strtok(char *s1, const char *s2); 【説明】 分解対象文字列 s1 を、文字群 s2 中の文字を区切りに字句(トークン)に分解します。 次のような手順で strtok() を用いて文字列をトークンに分解することが出来ます。 最初の呼び出しでは s1 には分解対象の文字列を指定します。トークンがあれば、strtok() はトークンへのポインタを返却します。 2回目以降の呼び出しでは s1 に NULL を指定します。分解できるトークンがあるうちは、strtok() はトークンへのポインタを返却します。 トークンがなくなると strtok() は NULL を返却します。 strtok() はトークンへのポインタを返却しながら、分解対象文字列 s1 中の区切り文字に空文字
update-alternatives このコマンドを使うと任意の環境に切り替えられる sudo update-alternatives --list gcc として登録があれば--configオプションで設定する。 無い場合は下記の通り。(4.4と4.6を切り替える例) sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 46 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.6 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 44 --slave /usr/bin/g++ g++ /usr/bi
いつのまにか gcc-4.2 が消えてたので、 gcc をインストールします。 Mac OS X Lion 10.7.2 で確認 次のようなコマンドで確認してみると、gcc が llvm-gcc-4.2 のシンボリックリンクになっていることがわかります。 gcc-4.2 が跡形もなく消えている。。。 ls -la /usr/bin | grep gcc lrwxr-xr-x 1 root wheel 12 Oct 5 10:25 cc -> llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 12 Oct 5 10:25 gcc -> llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 28 Oct 5 10:25 gcov-4.2 -> ../llvm-gcc-4.2/bin/gcov-4.2 lrwxr-xr-x 1 root admin 5
よく考えたら、Homebrewをインストールしたままの状態ではAVRマイコン関連のツールはavra(AVR用アセンブラ)とavrdude(AVR用ライタソフトウェア)しかないのですね。いつも使っているMacとは別の環境にAVRの開発環境を構築しようとして気がつきました。 ということで、avr-gccなどをHomebrewからインストールする方法を書いておきます。 まず、 brew tap larsimmisch/avr で、Homebrewで対象とするリポジトリに追加します。 そうすると、 brew search avr とかでavr関連のツールが出てくるようになります。あとはそれぞれインストールするだけ。 brew install avr-binutils brew install avr-gcc brew install avr-libc でそれぞれインストールできます。 情報元はこち
MacOSX の DeveloperToolsにも付属している、フリーの高性能 C/C++/Objective-C/Fortran/... コンパイラ。 http://gcc.gnu.org/ なお、Apple は将来的には gcc を clang に変える方向にある。 入手先[編集] 下記からも gcc および llvm-gcc などを含む一式を入手できる。Mac OSX 10.7 (Lion) (Xcode 4.2以降)で llvm-gcc-4.2 のみとなったが、gcc-4.2 を動かしたい際に、入手に便利。 https://github.com/kennethreitz/osx-gcc-installer インストール後は $ ls -l `which CC` `which gcc` `which gcc-4.2` lrwxr-xr-x 1 root wheel 5 5 23 18
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く