プログラミング

Javascriptでのビット演算で結果が0値になる件について

どうも、Javascriptでは基本の数値型が浮動小数点のせいで、整数型は53ビットまでらしい。その上、表題の通り、大きな数でのビット演算で0になる。その場合の回避方法は、割り算すること。

Swift 負の添字で配列にアクセス

Swiftの配列Arrayは負の添字で配列にアクセスできないので、拡張してみた。classにしてみたが、structにしてもいいのかもしれない。そこは判断つかない。 class SArray<T> { var a : Array<T> init(_ given: Array<T> = [T]() ){ a = given } subscript(i: Int) -> T </t></t></t>…

Swift programming 事始め: Hello, world!

SwiftでMacOSXアプリケーション開発にはXcode6.1から SwiftでMacOSXアプリケーションを開発するには,Xcode6.1+OSX10.9以上(SDK10.10)が必要である.Xcode6.1はOSX10.10Yosemiteとリリースを同じくしたのだが,Yosemiteリリース前まではApple開発者登録をし…

字句解析#2

字句解析を続ける。ファイルから読み出した文字列に順番を加えてトークンとする。 (defvar MGH_vlt "^0C.\\\(............\\\)\\\(............\\\)\\\(............\\\)\\\(............\\\)\\\(............\\\)\\\(............\\\)\\\(........\\\).....…

整数ジェネレータ

さて、前回の字句解析#1では、与えられたファイルを字句解析して、トークンを切り出した。ここでいうトークンとは、文字列とファイルを読み出した順番の対である。今回は、後者の"ファイルを読み出した順序"を掘り下げてみよう。前回、このファイルを読み出…

字句解析#1

文字列に番号を振って、番号と文字列の対のデータ構造をトークンとする。 (defun getToken-lexer (f) (cons (getOrder f) (seq-read f))) (defun getOrder (f) (save-excursion (set-buffer f) (1+ (/ (point) 251)))) (defun tk_to_s (tk) (format "#%5s %s…

パターンマッチ#1

文字列から正規表現を使ってパターンマッチをするには、string-matchを使う。 バッファを対象にパターンマッチは、re-search-forwardのようね。CIIフォーマットでは、データレコードで類似のパターンがあるので、 パターンマッチの照合順序を気をつけないと…

パターンマッチ#2

つづき。正規表現からパターンマッチした文字列を抜き出す時は、 substring とmatch-beginning とmatch-end を使う。 (defun to_s (o) (if (eq o EOF) "" (cond ((string-match MGH_vlt o) (symbol-name 'MGH_vlt)) ((string-match MGH_flt o) (format "%-10…

ファイル入出力

Emacs LispでCIIフォーマットをテキスト処理してみよう。以下、*scratch*バッファでC-j。EmacsはOSの提供するファイルに対してバッファを割り当てており、 実際にはバッファに対して操作することになる。 ファイルを開く=バッファを割り当てる (find-file "…

Emacs Lisp 事始め

会社支給の計算機は、当然Windowsで、業務に必要なソフトウェア以外インストールしてはいけない縛りがある。Windows+サイボウズ+Microsoft Officeという環境を強制されていると思いない。この環境は、ちょっとしたプログラムを書くには非常に貧弱でフラスト…

Hello, world!!

主にシステムエンジニアリングとプログラミングに関する内容の日記を書いていきたいと思っております。どうぞよろしく。