nptclのブログ

Common Lisp処理系nptの開発メモです。https://github.com/nptcl/npt

2022-01-01から1年間の記事一覧

Dictionaryの翻訳完了とバグ報告

ANSI Common LispのDictionaryの翻訳が終わりました。 トップはここ。 https://nptcl.github.io/npt-japanese/md/ansicl/index.html 気が向いたらformatの構文のところだけ翻訳するかもしれません。 ~Aの使い方とかいつもいつも自分が困ってるんで。 翻訳し…

Common Lispから日本語のDictionaryを見る

以前の投稿 ANSI Common LispのDictionaryだけ翻訳したい - nptclのブログでは、 Dictionaryだけを日本語に翻訳して行こうと話しましたが、 残念ながらまだ全部は翻訳できていません。 とはいえ現段階では70%くらい完了しました。 これが終わったらnptをい…

base64の変換を作る

C言語とCommon Lispで、base64を扱うコードを作成しました。 https://github.com/nptcl/hypd develop/base64 base64.c base64.h base64.lisp base64のコードはすでに何人も作成しており、 C言語では検索するだけでコードがいっぱい出てきます。 Common Lisp…

ANSI Common LispのDictionaryだけ翻訳したい

Dictionaryだけ翻訳したいです。 Dictionaryだけです。 ANSI Common Lisp仕様書の、各章にあるDictionaryだけを翻訳していきます。 ということで、ここでやって行きます。 まだ全然できていません。 https://nptcl.github.io/npt-japanese/docs/ansicl/index…

C言語で円周率の値を使う

円周率とは3.14のことです。 本当はもっと桁数があるので、前回の投稿では次のようにしていました。 #define PI 3.141592653589793238462643383276 小数桁数が30の例です。 FreeBSDで次のように実行すれば出てきます。 $ echo 'scale=30; a(1)*4' | bc -l 3.…

Common LispでFFTを使う

1. はじめに FFT(高速フーリエ変換)の話題です。 まずは、ただコピーして使えるやつを示します。 そのあと長々と説明します。 (defun fftcore (v n sign) ;; bit reverse (let (a b y) (dotimes (x n) (setq a (ash n -1) y 0 b x) (do () ((zerop a)) (se…

Common LispでLALR(1)のparserを作る5

前回:Common LispでLALR(1)のparserを作る4 - nptclのブログ 1. 続きです Common LispでLALR(1)を作りました! 次にやることはでっかい構文を読み込ませることです。 ここではC言語の文法について見ていきます。 2. 大きな構文解析 C言語の構文解析をしてみ…

Common LispでLALR(1)のparserを作る4

前回:Common LispでLALR(1)のparserを作る3 - nptclのブログ 1. 続きです Common LispでLR(1)の表を作りました! あとは実行してみて、そのあとでLALR(1)もやってみます。 2. 構文解析の実行 実行するためには、新たにスタックが必要になります。 すでに構…

Common LispでLALR(1)のparserを作る3

前回:Common LispでLALR(1)のparserを作る2 - nptclのブログ 1. 続きです Common LispでひたすらLR(1)を作成するコーナーです。 CLOSUREまで作ったので、状態遷移表の作成に入ります。 2. GOTO CLOSUREができたら、次はGOTOを作りましょう。 まずは定義から…

Common LispでLALR(1)のparserを作る2

前回:Common LispでLALR(1)のparserを作る1 - nptclのブログ 【変更】first-parseを修正しました。 1. 続きです Common Lispでひたすらparserを作っていきます。 前回は、shift, reduceについて解説しました。 今回はLR(1)をひたすら作っていきます。 ここ…

Common LispでLALR(1)のparserを作る1

1. はじめに Common LispでLALR(1)のparserを作りたくなりました。 ここでは、ただひたすらparserを作っていきます。 テストコードですが完成版を先に置いておきます。 https://github.com/nptcl/parser/blob/main/blog/parser.lisp 2. parserの説明 parser…

nptでsoファイルを読み込む

npt

前回nptでDLLファイルを読み込む - nptclのブログの続きです。 前の投稿ではnptにDLLファイルを読み込ませましたが、 soファイルもやりたいな、ということでやりました。 個人的にはsoファイルの作成は初めてなので、 いろいろと勉強になりました。 1. nptの…

nptでDLLファイルを読み込む

npt

1. はじめに nptのWindows版で、DLLを読み込む機能を作りました。 FFIでは無いので注意。 npt用にDLLを作成すると読み込めるというものです。 【追記】soも作りました! nptでsoファイルを読み込む - nptclのブログ npt for Windowsは、なんとなくうまく動い…

npt for Windowsのコンパイル方法

npt

以前の投稿でnpt-windowsのバイナリを配布しました。 nptのWindows版を公開します - nptclのブログ ウィルスというか、トロイの木馬報告もされました。 npt64.exeのウィルス検出について - nptclのブログ ここでは手動でnpt-windowsをコンパイルする方法につ…

npt64.exeのウィルス検出について

npt

Microsoft Defenderから脅威が検出されました。 でもトレンドマイクロのオンラインスキャンでは問題なし。 誤動作の可能性があるので報告します。 下記のファイルです。 64bit版実行ファイル https://nptcl.github.io/npt-windows/npt64.exe 検出内容 Trojan…

nptのWindows版を公開します

npt

【注意】セキュリティの脅威が検出されましたのでご確認ください。 【注意】npt64.exeのウィルス検出について - nptclのブログ nptを、Windows上で使いやすいようにした実行ファイルです。 64bit版実行ファイル https://nptcl.github.io/npt-windows/npt64.e…

nptの日本語のドキュメントを移動する

npt

今まではブログにおいてました。 ANSI Common Lisp npt トップページ - nptclのブログ でもちゃんとバージョン管理したいと思っていましたので、 githubに移動することにしました。 移動先はこちら。 ★nptの日本語のドキュメント https://nptcl.github.io/np…

termeの操作関数を作る

npt

以前、readline / editlineの依存から脱出しようと、自前のプロンプトを作成しました。 その機能に、termeモジュールという名前を付けました。 何も考えずにnptをコンパイルすると標準で使えるようになっています。 どうやって実現したのかというと、端末をr…

nptのテストが終わる

npt

ANSI Common Lispの関数仕様に対応するテストケースを一通り完成させました。 以前よりはだいぶましにはなりましたけど、まだバグはいっぱいありますね。 残念ながらこれ以上は開発に時間をかけていられません。 パソコンも半分壊れてて、nptをコンパイルす…