Skip to content

Instantly share code, notes, and snippets.

@y-taka-23
y-taka-23 / fibonacci.cob
Created July 27, 2014 04:43
COBOL による Fibonacci 数の計算
IDENTIFICATION DIVISION.
PROGRAM-ID. FIBONACCI.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ARGUMENT PIC 9(2).
01 RETURN-VALUE PIC 9(25).
01 RESULT PIC Z(25).
01 DP-TABLE.
03 VALS PIC 9(25) OCCURS 99.
@y-taka-23
y-taka-23 / rnpcalc.cob
Last active August 29, 2015 14:04
COBOL による逆ポーランド電卓
IDENTIFICATION DIVISION.
PROGRAM-ID. RNPCALC.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 STACK-POS PIC 9(2) VALUE 1.
01 STACK.
03 STACK-DATA PIC 9(4) OCCURS 10 VALUE 0.
01 EXPR PIC X(20).
01 EXPR-POS PIC 9(2).
@y-taka-23
y-taka-23 / promela_leader.pml
Last active January 4, 2016 18:49
A Model of Leader Election on Promela/SPIN
/*
* Leader Election by Chang-Roberts Algorithm
*/
byte leader = 0; /* number of leaders */
proctype Node(chan ch_in, ch_out) {
byte tok;

名古屋モデル検査勉強会 #2

前回の勉強会では Promela の文法要素と基本的な SPIN の使い方を眺めたので、今回は LTL 式を用いた性質検査およびハンズオンを行う。

LTL 式による検査

LTL 式の構文

SPIN の LTL は命題論理の拡張となっており、各論理式の真偽が状態に依存する。

@y-taka-23
y-taka-23 / promela_8puzzle.pml
Created January 11, 2014 10:12
A Model of the 8-Puzzle on Promela/SPIN
/*
* Impossibility of the 8-Puzzle
*
* NOTICE: For full statespace search, run-time option -m230000 needed, e.g.
* $ spin -a promela_8puzzle.pml
* $ gcc -o pan pan.c
* $ ./pan -m230000
*/
#define SPACE 0
@y-taka-23
y-taka-23 / alloy_channel.als
Last active January 1, 2016 21:19
Alloy による非同期通信チャネルのモデリング (キューの仕様については https://gist.github.com/y-taka-23/8202051 を参照のこと)
// **************************************************
// 通信チャネルとしてキューを用いたモデル
// **************************************************
open util/ordering[Time]
open alloy_queue[Request]
sig Time {} // 時刻パラメータ
sig Client, Server {} // 通信に参加するクライアントとサーバ
sig Request {} // クライアントがサーバに送るメッセージ
@y-taka-23
y-taka-23 / alloy_queue.als
Last active January 1, 2016 21:09
Alloy によるキューのモデリングと代数的仕様記述
// ************************************
// 連結リストを用いたキューのモデル
// ************************************
module alloy_queue[Value]
// ------------------------------------
// 各要素の定義
// ------------------------------------
@y-taka-23
y-taka-23 / alloy_exclusion.als
Created December 13, 2013 15:20
Alloy による排他制御のモデリング
// ************************************
// 排他制御のモデル
// ************************************
// Time シグネチャに全順序構造を導入
open util/ordering [Time]
// 時刻を表すシグネチャ
sig Time {}
@y-taka-23
y-taka-23 / whitespace_sieve.ws
Created November 7, 2013 12:09
Sieve of Eratosthenes (up to 100) on Whitespace
.
.
.
.
.
.
.
.
.
.
@y-taka-23
y-taka-23 / whitespace_fizzbuzz.ws
Created November 7, 2013 12:08
FizzBuzz (up to 100) on Whitespace
.
.
.
.
.
.
.
.
.
.