おすすめ本

最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

AccRanking

Ad

カテゴリ「BHT-BASIC」の32件の記事 Feed

2016年4月 5日 (火)

BHT-BASIC4.0:変数宣言の書き方(BHT-1300)

ハンディターミナルの開発言語であるBHT-BASIC4.0についての2回目ですが、 今回はデータ型に続いて変数宣言について説明します。

一般的にプログラム言語で存在する、グローバル変数、モジュール変数、ローカル変数がBHT-BASICにもあります。 グローバル変数、モジュール変数とはユーザが宣言する関数の外で静的に存在する変数です。 ローカル変数とはユーザ関数の中で一時的に存在する変数のことです。

それでは各変数それぞれについて詳しくみていきます。

■グローバル変数

ユーザが宣言する関数の外で、PUBLIC または GLOBALの命令語(ステートメント) で変数を宣言すると、グローバル変数として宣言できます。
PUBLIC と GLOBALですがどちらで宣言してもいい様ですが、それぞれ違いがあります。 まずはPUBLIC宣言のソースの例です。 この例では「MODULE1.SRC」と「MODULE2.SRC」の2つのソースがあります。 尚、プロジェクトのプロパティでメインモジュールとして「MODULE1.SRC」を指定してあります。

これを実行すると以下の表示の様になります。
Basic21
PUBLIC宣言はソースファイルのどこか一カ所で行えば、 別のソースでそれを参照する場合は、宣言なしでその変数名を使えば 参照できます。

同じ変数名で別のソースでPUBLIC宣言すると二重定義エラーがリンク時に発生します。 但し、同じ変数名でもモジュール変数として宣言すれば別の変数として扱われますので、 注意が必要です。

上記のソースで宣言した、「PDT1%」「PDT2$」を今度はGLOBALで宣言します。 今回の場合は「MODULE2.SRC」の方にも同じ宣言をしないと、リンク時に変数宣言エラーが発生します。

どちらの方法でも同じ結果になるのですが、 PUBLIC または GLOBALのどちらがいいとも言えません。
PUBLICの場合は、他のソースで宣言しなくても使えるので楽と言えば楽かもしれませんが、 変数が多くなりソースファイルの数が増えると管理が厄介です。
但し、PUBLICを宣言するところを一カ所に限定し、 変数の命名規則でPUBLICだとわかるプリフィックスを先頭に付けるのも方法かもしれません。

GLOBALはその変数を参照しているソースファイルで同じ宣言を行う必要が在ります。 この宣言を別ファイルにし、変数の宣言のみのソースとして、各ソースファイルでインクルードすることで煩雑ではなくなると思います。 以下のソースがその例です。


■モジュール変数

ユーザが宣言する関数の外で、PRIVATE または DIMのステートメント で変数を宣言すると、モジュール変数として宣言できます。
PRIVATE 、 DIMのどちらでも効果は同じなのですが、 DIMはレジスタ変数としては宣言できない様です。
以下のソースを見てください。「MODULE2.SRC」では同じ変数名でモジュール変数を宣言しています。 「MODULE2.SRC」のモジュール変数は同じ変数名ですが、「MODULE1.SRC」とは全く異なるメモリ領域に確保されます。

これを実行すると以下の表示の様になります。 「MODULE2.SRC」のTest1関数が実行される時には、「MODULE2.SRC」内のモジュール変数として 初期化されたそれぞれの内容が表示されます。

Basic22

■ローカル変数

ユーザが宣言する関数の内で、PRIVATEDIMSTATICの各ステートメント で変数を宣言すると、ローカル変数として宣言できます。

グローバル変数やモジュール変数と同じ名前でローカル変数を宣言しても、 全く別ものとして扱われます。(全く別のメモリ領域に割り当てられます)

この様に組むと、関数の中から同じ名前のモジュール変数が参照できなくなります。 そのため、通常プログラムする時にモジュール変数とローカル変数は、なるべくかぶらない様にしています。


楽天市場

転職を本気で考えている方向けのプログラミングスクール!【WebCampPRO】

■関連記事
BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
BHT-BASIC4.0:演算子について(BHT-1300)
BHT-BASIC4.0:画面への表示について(BHT-1300)
BHT-BASIC4.0:キー入力について(BHT-1300)
BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
BHT-BASIC4.0:文字列を扱うユーザ定義関数について
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について


デル株式会社

2016年4月 4日 (月)

BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた

DENSOのハンディターミナルBHT-1300を使ったシステムを作成することがあったので、 ハンディターミナルの開発言語であるBHT-BASIC4.0についていろいろ載せていきたいと思います。

このBHT-BASIC4.0ですが言語としてはBASICなのですが、 最近のはやりのVisualBasic.NETとは全然違っています。
一言でいえば相当昔のBASICで、言語仕様的には30数年前の NECのPC8001やPC8801などのROM-BASICと呼ばれていたBASICに近いです。 これらのBASICは元々はMicroSoftが開発したBASICを日本のメーカが採用し ROMの中に入れていたものです。 パソコンの電源ONでいきなりBASICが走る感じになっていました。

なので、昔にBASICを触ったことが有る方ならば懐かしい感じで プログラムできるのではないでしょうか。 実際私も、昔を思い出しながら組みました。

昔語りはこの辺にしまして、BHT-BASIC4.0に話を戻します。 BHT-BASIC4.0(以降はBHT-BASICと称します)はハンディターミナルの上で動作させるためなのか、 昔のBASICよりは制約がいろいろあります。 変数の名前の長さであったり、文字列のMAX長であったりそこは ハンディターミナルなのでメモリの制約があると思われます。

それでは今回は初回なので、変数などについて記します。

■BHT-BASICのハンディターミナル内での構成

ハンディターミナルのメモリにはフラッシュメモリとRAMがあり、 フラッシュメモリの中では以下の構成部分からなります。
・システムプログラム
 (BHT-BASICインタプリタ、拡張ライブラリ、拡張関数、システムドライバ等)
・ユーザプログラム
 (ユーザが作成した実行可能なプログラムファイル)
・ユーザデータファイル
 (ユーザプログラムで作成・使用されるデータファイル等)


■BHT-BASICの開発など

・BASICの文法はほぼMicroSoftのBASICと同じです。
・専用のコンパイラ・リンケージエディタで開発します。
・コンパイラ言語なので行番号は不要です。
・実行可能プログラムファイルは中間言語に変換される。
 (ファイル拡張子は PD4 
・開発環境はWindows7,Windows8などの32bitパソコンが必要です。
・実行プログラムをハンディターミナルに転送する通信ユニットが必要です。
 (通信ユニットにはUSBまたはRS-232Cでパソコンと接続)


■BHT-BASICの特徴など

・プログラムの1行は512文字(バイト)
・変数名に使用できるのは、英数字とピリオドのみ
・変数名は大文字と小文字の区別は無く、255文字まで
 (但し、文字列変数を表す $ 、 整数変数を表す % は文字数に含めない)
・変数のデータ型には以下の4種類がある。
データ型 型宣言文字 値の範囲
整数型 % -32,768 ~ 32,767
長整数型 & -2,147,483,648 ~ 2,147,483,647
実数型 無し (ゼロ)0
(正数)0.1000000000E-64 ~ 0.9999999999E+63
(負数)-0.1000000000E-64 ~ -0.9999999999E+63
文字型 $ 0文字 ~ 8192文字

文字列型の文字数のMAXが8192文字(バイト)なのは注意が必要です。 また、文字列型は他にも注意する点があるのですが、それはまた次回に記します。

今回はこの辺りまでで、終わります。
次回は、変数の宣言の仕方や、式の書き方などにします。

転職を本気で考えている方向けのプログラミングスクール!【WebCampPRO】


■関連記事
BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
BHT-BASIC4.0:演算子について(BHT-1300)
BHT-BASIC4.0:画面への表示について(BHT-1300)
BHT-BASIC4.0:キー入力について(BHT-1300)
BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
BHT-BASIC4.0:文字列を扱うユーザ定義関数について
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について


BHT-BASIC4.0BHT用 転送ユーティリティ DLLパック【送料無料・代引手数料無料】【02P05Nov16】

価格: 48,600円
(2016/11/26 21:56時点 )



楽天市場