カナタブログ

初心者エンジニアのメモ帳

clang使ってみた

vimでコード補完しようとして知ったclangがどんなものかどうかを知ろうとちょっと使ってみた。

clangとは

Clangは、プログラミング言語 CC++Objective-CObjective-C++ 向けのコンパイラフロントエンドである。バックエンドとして LLVM を使用しており、LLVM 2.6以降は LLVM の一部としてリリースされている。

 LLVMってなに?

 LLVM とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。

 アセンブラレベルでみるとすごいコードが生成されるらしい。

d.hatena.ne.jp

エラーメッセージ

何はともあれ僕は組み込み系の仕事が多いのでいつも自由にコンパイラが選べるわけではないので速度が早くなろうがマイコンに応じたコンパイラを使うしかないわけである。

しかし!!

clangはエラーメッセージがわかりやすいということなのでそのあたりは十分利用価値がありそうである

 

clangやってみた

gistf04895448313490500cc

ちょっとバグがあるコードを書いた

それをclangでビルドすると

f:id:koro_09:20150716065706p:plain

 ここは::ですよーと場所を指し示してくれる。

gccの場合は

f:id:koro_09:20150716070102p:plain

どっちがわかりやすいかというとclangですね。

 

肝心のvimでのコード自動補完がまだできていないのである。

 

 

Python入門④

lambda式について

 

lambda式とは

Pythonの無名関数(lambda)の使い方 - Life with Python

Pythonでは「lambda式」を使って無名関数を作ることができる・・・らしい

 

lambda式は聞いたことがある。

無名関数はわからない

とりあえず例を動かしてみる。

gist1e0167157a7cfbe9bcdb

 lambda:x:yで

xが引数、yが戻り値となる

lambdaというキーワードを使えば関数がかけるのか、defしなくてよいということだな

 

高階関数

他の関数と組み合わせて使うのが便利

gist53f122f9d3b6627eee2b

ここではlambda式でl1のリストの2つめの要素を取り出している

それをソートしている

引数の中にlambdaで無名関数を作っているのかー

 lambda式、ちょっとわかった気がする

 

でもsortedの関数作ってないのにsorted関数使えるのなんでだ??

組み込み関数

2. 組み込み関数 — Python 2.7ja1 documentation

Pythonインタプリタが組み込み関数を持っているからいつでも利用することができる!

Cで言うところの

#include <math.h>が不要なのね

 

Pythonってニシキヘビぐらいの認識しかなかったけどマルチプログラミングパラダイムだし結構おもしろいやつなんやない

 

Python入門③

関数編

 

関数

関数の定義はdef文で

nonlocal宣言

関数の内部に別の関数を書くこともできる

 

ジェネレータ関数

ちょっとここからが新しい言葉が出てきた。本だけじゃわかんないからぐぐろう

http://jutememo.blogspot.jp/2008/07/python-1.html

 

yieldを関数内に記述することでgen1()の呼び出しでジェネレータが生成。

for文は内部でiter()によりジェネレータイテレータを取得しnext()を呼び出す

next()を呼び出すごとに個々のyieldで値が返され処理が止まり、関数の実行が凍結される・・・らしい

本ではさらっとしか触れていないがもうちょっと理解が必要だ、

とりあえず今はこういうものがあるという事がわかったから、さらっと流しておこう。

 

Python入門②

Pythonの基本をお勉強

 

 

条件文

まずC言語ベースの私がちょっと戸惑うのがセミコロンと括弧がないことだ

 

論理も&や|じゃなくてそのままandとorなので読みやすいのかな

 

比較演算子

複数比較するときにandやorで繋げなくてもいいなんて

 

繰り返し

これはjavaの拡張for文と同じだな

 

このあたりは基本はどの言語も同じかな

Python入門①

Pythonを集中的に勉強する

 

環境構築

以前買ってほこりかぶってたこの本を参考に進めていく

http://ecx.images-amazon.com/images/I/517aCE1URqL._SL75_.jpg

 まずインストールから。

入手可能なPythonバージョンを確認する

f:id:koro_09:20150620090522p:plain

Python3.2をインストール

f:id:koro_09:20150620091733p:plain

動かす

プログラム書いて

 

実行!!!

f:id:koro_09:20150620092702p:plain

とりあえず環境はできたのかな?

人生に迷うと歩く

人生に迷ったときに歩くと、なんとなく好転していく

 

京都には哲学の道という名前の道がある。一度行ったことがあるがただの道である。

 

歩くことで脳が整理させるのだろう、

 

梅雨前の1か月会社までの道のり片道5kmを歩いて通っていた。往復10kmである。

 

結果、いろいろと変わった

まず、体型

体重はあんまり変わっていないが体が締まったというのが目に見えてわかる。

体脂肪も2%ほど減った

 

次に社会人サークルに入った

体力的に自信が出てきたのか、卓球サークルに勢いで入った。

中学の頃に部活でやっていただけだったが意外と体は覚えていた

週末はなるべく行くようにしている。

 

最後は数学アレルギーがだいぶ減った!

会社終わりにカフェに行って数学の勉強をしている

今までよくわかっていなかった偏微分やらを勉強してそこまで難しくはないんだなとわかった

 

まぁなんだかんだで活動的になりつつあるということだ。

 

歩きながらいろいろ考えて、自分の歩いてきた道を哲学の道にしていきたいと思う。

 

るびる

Ruby

Ruby知ってる?、と聞かれたら私はこう答える ああ知ってるよ、名前だけ。まつもとなんちゃらさんのやろ? ・・・

そういうのはよくないと思う

今日はRubyの環境だけ整えてみる

インストール

http://www.rubylife.jp/install/ ここを参考

Hello,world

gist3e09ca642d68c6f18a8f

 

はい動いたー!

Rubyさんに挨拶できた

  

on Railsとは?

RubyはよくRuby on Railsとか聞くけど、on Railsってなに?ってことで少し調べる

www.r-learning.co.jp/ruby/rubyonrails/

ふむふむ、要はフレームワークちゅーわけやろ?(適当

mruby

mrubyというものが存在するらしいが、身の回りでたまにその話題がでてくることがある。

いつまでもRubyを名前しか知らないという状況は避けたいので暇を見てやっていきたい

Ruby、簡単なんやろ?(適当