awkについて語るスレ $3
- 1 :デフォルトの名無しさん:2020/09/14(月) 12:37:48.22 ID:ewkQANK9.net
- 腐っても鯛? 騏も老いては駑馬に劣る?
三人の碩学が生み出したスクリプト言語AWKについて語るスレ
◆ 前スレ
awkについて語るスレ $2
https://mevius.5ch.net/test/read.cgi/tech/1172242542/
◆ 参考
The AWK Programming Language (Brian Kernighan):
ttp://cm.bell-labs.com/cm/cs/awkbook/index.html
GAWK (GNU Projedt):
ttp://www.gnu.org/software/gawk/
- 74 :デフォルトの名無しさん:2024/06/18(火) 10:26:57.44 ID:K2nHM9ZT.net
- >>67
何のお話しでつか
- 75 :デフォルトの名無しさん:2024/06/18(火) 11:47:17.44 ID:Li8KIoEM.net
- >>74
twitterでawkを検索
- 76 :デフォルトの名無しさん:2024/06/18(火) 13:24:24.39 ID:Yg9xtfWz.net
- awkでC言語のソースを自動生成したことあるぞ
30ウン年前
三角関数のテーブル
360度を256等分して、2バイト符号付き整数でsinとcosが32768分のいくつかっていうのを並べたテーブル
- 77 :デフォルトの名無しさん:2024/06/18(火) 13:55:32.44 ID:Yg9xtfWz.net
- Copilot
それは非常に興味深いプロジェクトですね。AWKを使ってC言語のソースコードを自動生成するのは、特に数学的な計算やデータ処理が必要な場合に便利です。三角関数のテーブルを生成するというのは、特に組み込みシステムやリアルタイムアプリケーションで役立つことでしょう。
AWKはテキスト処理に特化したプログラミング言語であり、行単位のデータを処理するのが一般的な使い方ですが、プログラミング言語としての機能も備えているため、行単位のデータ以外を処理することも可能です。
例えば、360度を256等分して、各角度に対するsinとcosの値を2バイト符号付き整数で表現するテーブルは、以下のようなAWKスクリプトで生成できます。
BEGIN {
for (i = 0; i < 256; i++) {
# 角度をラジアンに変換
rad = i * (2 * 3.14159265358979323846 / 256);
# sinとcosの値を計算
sin_val = int(sin(rad) * 32768);
cos_val = int(cos(rad) * 32768);
# テーブルに値を出力
printf "%d, %d,\n", sin_val, cos_val;
}
}
このスクリプトは、0度から355度までの各角度に対して、sinとcosの値を計算し、それを32768でスケーリングして整数に変換し、テーブルとして出力します。AWKは数値計算にも対応しているため、このような用途にも適しています。
もし現代の環境で同様のテーブルを生成したい場合は、AWKだけでなく他のツールや言語を使う選択肢もありますが、AWKはそのシンプルさとポータビリティで依然として有用です。もし何かお手伝いできることがあれば、お知らせください。
- 78 :デフォルトの名無しさん:2024/06/18(火) 14:14:13.16 ID:K2nHM9ZT.net
- >>75
この人でつか。
ttps://x.com/hirayamaxkakeru/status/1801232615200198879
本が改訂されたとはいえ平積みされたことに驚いた。
- 79 :デフォルトの名無しさん:2024/06/18(火) 14:14:49.73 ID:7l1MdKKx.net
- キャラクタセットの情報が与えられてないぞ?
- 80 :デフォルトの名無しさん:2024/06/18(火) 14:17:07.68 ID:7l1MdKKx.net
- >>78
なんかなぜ書籍のタイトルで探しているのかわからないポンコツだよな
宣伝なのかもしれないけど
- 81 :デフォルトの名無しさん:2024/06/18(火) 14:18:38.82 ID:7l1MdKKx.net
- いまどき学歴を書く古いスタイルもわからない
- 82 :デフォルトの名無しさん:2024/06/18(火) 14:21:06.45 ID:7l1MdKKx.net
- >>78
別の投稿を見ると自慢だらけでゲロが出そう
- 83 :デフォルトの名無しさん:2024/06/18(火) 14:22:11.28 ID:Li8KIoEM.net
- >>78
そう
この経歴で全く知らないってことはあるんかって思った次第
- 84 :デフォルトの名無しさん:2024/06/18(火) 14:23:47.05 ID:Li8KIoEM.net
- 真面目に勉強してきて本当に知らないのであれば
我々が想像以上に今の若手エンジニアの技術は偏ってるんだろうな
もはやLinuxすら触ることをしていない可能性
- 85 :デフォルトの名無しさん:2024/06/18(火) 14:38:57.57 ID:7l1MdKKx.net
- bashのスクリプトからawk、sedならわかるんだが、awk単独でどうとか
アマゾンのレビューで吉田というやつのみが5つ星で、この吉田のプロフィールがヒラヤマというXに繋がっている可能性がある
あまりに読んでなさすぎだと思ったら、読んでないんだな
オライリーの「sed & awkプログラミング 改訂版」には触れない、他の出版会社の書籍には触れないなど二人とも違和感がある
- 86 :デフォルトの名無しさん:2024/06/18(火) 14:44:06.94 ID:J2T1cvE/.net
- >>68
Rは死んだんだっけ
- 87 :デフォルトの名無しさん:2024/06/18(火) 14:46:35.23 ID:J2T1cvE/.net
- >>75
確かに perl 使い始める前は awk 使ってたの思い出した
- 88 :デフォルトの名無しさん:2024/06/18(火) 14:56:45.90 ID:J2T1cvE/.net
- >>85
尼のレビューで awk の吉田観に行ったら
ヤバマン - サレ妻の秘密の離婚準備 ってのがおすすめされるんだがなんでなん
- 89 :デフォルトの名無しさん:2024/06/18(火) 16:54:28.15 ID:Yg9xtfWz.net
- 検索エンジンでなくAIに聞く練習をしてみた
自分
"awk gentab.awk -h" とやればヘッダが生成され、"awk gentab.awk -s" とすればソースが生成されるようにするにはどうすればいいんでしたっけ。
Copilot
AWKで特定のオプションに応じて異なる出力を生成するには、コマンドライン引数を処理するロジックをスクリプトに組み込む必要があります。-h オプションでヘッダを、-s オプションでソースを生成するようにするためには、以下のようなAWKスクリプトを書くことができます。
https://ideone.com/0gT1PT
このスクリプトは、コマンドライン引数をチェックして、-h が指定された場合はヘッダファイルの内容を、-s が指定された場合はソースファイルの内容を出力します。exit ステートメントは、それぞれのセクションの出力後にスクリプトの実行を終了させるために使用されます。
スクリプトを gentab.awk として保存した後、以下のコマンドを実行することで、それぞれのファイルを生成できます。
awk -f gentab.awk -h # ヘッダファイル生成
awk -f gentab.awk -s # ソースファイル生成
AWKスクリプトの詳細な使い方やオプションについては、オンラインのマニュアルやドキュメントを参照すると良いでしょう。もし他にも質問があれば、お気軽にどうぞ。
- 90 :デフォルトの名無しさん:2024/06/18(火) 17:12:04.60 ID:Yg9xtfWz.net
- ええっと、これを貼らなきゃ見えないのかな
https://ideone.com/e.js/0gT1PT
- 91 :デフォルトの名無しさん:2024/06/18(火) 18:24:04.44 ID:7l1MdKKx.net
- ?
- 92 :デフォルトの名無しさん:2024/06/18(火) 19:12:23.97 ID:Yg9xtfWz.net
- こういう、固定小数点の三角関数が欲しい時にawkに生成させる話さ
short sin_table[] = {
0, 6392, 12539, 18204, 23169, 27244, 30272, 32137,
32767, 32137, 30272, 27244, 23169, 18204, 12539, 6392,
0, -6392, -12539, -18204, -23169, -27244, -30272, -32137,
-32767, -32137, -30272, -27244, -23169, -18204, -12539, -6392,
};
short cos_table[] = {
32767, 32137, 30272, 27244, 23169, 18204, 12539, 6392,
0, -6392, -12539, -18204, -23169, -27244, -30272, -32137,
-32767, -32137, -30272, -27244, -23169, -18204, -12539, -6392,
0, 6392, 12539, 18204, 23169, 27244, 30272, 32137,
};
- 93 :デフォルトの名無しさん:2024/06/18(火) 19:17:40.22 ID:7l1MdKKx.net
- 何を勘違いしているの
- 94 :デフォルトの名無しさん:2024/06/18(火) 19:19:23.73 ID:7l1MdKKx.net
- 生成AIは的確な仕様を伝えてないといけない
- 95 :デフォルトの名無しさん:2024/06/18(火) 19:32:36.51 ID:Yg9xtfWz.net
- >>76で伝えてるじゃん
- 96 :デフォルトの名無しさん:2024/06/18(火) 19:40:43.38 ID:7l1MdKKx.net
- >>95
それが合っているのかどう確認したのですか?
生成AIは正解を教えるわけではありません。
- 97 :デフォルトの名無しさん:2024/06/18(火) 19:48:33.05 ID:Yg9xtfWz.net
- >>96
>>92を見ればちゃんとだいたい三角関数になってるじゃん
簡単のため256等分を32等分にしようって提案しただけ
- 98 :デフォルトの名無しさん:2024/06/18(火) 21:32:43.98 ID:Yg5iVeQt.net
- マジレスすると 0度〜45度 の余弦だけあれば十分です
- 99 :デフォルトの名無しさん:2024/06/18(火) 21:38:40.47 ID:Yg9xtfWz.net
- >>98
それをループ展開するのさ
- 100 :デフォルトの名無しさん:2024/06/19(水) 09:13:33.08 ID:Ml7xOhwE.net
- >>77
ごめんその目的ならそれで良いけど
本来三角関数テーブルを造るのに[sin|cos|tan|asin|acos|atan|atan2]関数を使ったら負けだと思う
- 101 :デフォルトの名無しさん:2024/06/19(水) 10:07:13.56 ID:0R72bU2b.net
- 作ったもの、生成させたものが想定どおりか確認する、テストするという概念がないのは、プログラマ以前の話だぜ?
- 102 :デフォルトの名無しさん:2024/06/19(水) 15:24:43.01 ID:Lm+h2XXV.net
- ユニットテストなあ
sinとcosだけだったらテストしてもいいかもしれない
でもtanはどうする?
tanはsinやcosみたいに有限の範囲に収まっていない
つまりそのままではテーブルを持ちにくい
実際にはtanは個別のプログラムで必要とされる計算式において、
「有限の範囲に収まる、tanを含む部分式」というのがたいていあるはずだから、それのテーブルを持つ
それは単体でテストしても意味のないものだ
- 103 :デフォルトの名無しさん:2024/06/19(水) 19:35:36.17 ID:IaB5ZLIm.net
- >>102
それは仕様として決めること
四則演算のみの電卓だってどういう順番で計算するかは決まっていない
数学の誤差が小さくなる計算が正しいわけではない
- 104 :デフォルトの名無しさん:2024/06/19(水) 23:53:27.29 ID:Lm+h2XXV.net
- https://ideone.com/peSwGS
- 105 :デフォルトの名無しさん:2024/06/21(金) 17:44:44.00 ID:LwqdtCE6.net
- >>104
なぜ自作の計算しているのかという部分があるそ?
- 106 :デフォルトの名無しさん:2024/06/21(金) 17:45:23.65 ID:LwqdtCE6.net
- awkでやる意味がないよ
- 107 :デフォルトの名無しさん:2024/06/21(金) 18:34:17.72 ID:r40UsctT.net
- 古い人なんじゃない?
昔はこういうテーブルよく作ってたよ
深層学習で使われるシグモイド関数のテーブルとか
浮動小数点数のレジスタが遅かったり
貧弱な計算資源の計算機だとかなり有用
- 108 :デフォルトの名無しさん:2024/06/21(金) 18:38:13.51 ID:wIxdZD1d.net
- >>105
安いハードウェアでも速いから
- 109 :デフォルトの名無しさん:2024/06/21(金) 23:08:53.44 ID:LwqdtCE6.net
- OSの標示コマンドを自作してしまう人間はまだいるからなあ。
- 110 :デフォルトの名無しさん:2024/06/24(月) 00:16:12.40 ID:sso3G8sO.net
- アマゾンの
「プログラミング言語AWK 第2版」
コメントなしの5つ星レビューが追加された
転○目的の中古が値崩れし始めている
めがベンチャーくんの宣伝じゃ売れないよ!
- 111 :デフォルトの名無しさん:2024/06/24(月) 08:32:33.18 ID:snwWNZSk.net
- >>110
これか。
ttps://www.%61mazon.co.jp/product-reviews/4814400705/
評価した人数が僅か2人なので、宣伝だとしても効果は薄そう。
- 112 :デフォルトの名無しさん:2024/06/24(月) 14:01:48.24 ID:OzsKCRyN.net
- https://x.com/hirayamaxkakeru/status/1801232615200198879
https://x.com/hirayamaxkakeru?t=6IXjFVaAG6iUPmY3jYVlIA&s=09
こういう人もいるんだな。都知事選の政見放送みたい
- 113 :デフォルトの名無しさん:2024/06/24(月) 15:08:37.60 ID:kN0svtrZ.net
- awkでやる意味がないよ
- 114 :デフォルトの名無しさん:2024/06/24(月) 15:22:42.93 ID:qmamFw0P.net
- AWKを使ったことないは理解できるが名前すら知らないって最近の人はこんなのばっかなの?
怖いんだけど
使ったことないはまだ理解できるけど
名前すら知らないって
- 115 :デフォルトの名無しさん:2024/06/24(月) 17:22:13.19 ID:FfGi9EOd.net
- >>112
>>67 と同じ話を何で何度もすんねん。
- 116 :デフォルトの名無しさん:2024/06/24(月) 18:41:22.73 ID:OzsKCRyN.net
- ごめんチャイ、気が付かなんだ
- 117 :デフォルトの名無しさん:2024/06/25(火) 13:37:20.72 ID:ZtCD4zFU.net
- おじいちゃんお薬の時間です
- 118 :デフォルトの名無しさん:2024/06/25(火) 14:42:15.39 ID:Z9mp1IOT.net
- 薬はまだかね?
代金は受け取っただろ。
- 119 :デフォルトの名無しさん:2024/06/26(水) 00:52:44.98 ID:yv8Z2CuH.net
- 都知事選もとりあえずポスターに「AI」と書いておけばいいみたいな雑な扱い
- 120 :デフォルトの名無しさん:2024/06/26(水) 12:32:40.93 ID:j6fp+f8B.net
- これほど乱れた都知事選になるとは
- 121 :デフォルトの名無しさん:2024/06/26(水) 14:58:55.42 ID:hXpRZohR.net
- 民主政治の末期症状見てるみたいな気分になる
制度改革が必要だな
- 122 :デフォルトの名無しさん:2024/06/26(水) 21:32:42.48 ID:yv8Z2CuH.net
- 都知事選でAIがどうこう言っている立候補者はすべてレベルが低い。
- 123 :デフォルトの名無しさん:2024/06/27(木) 10:11:18.36 ID:OTNDZ+yC.net
- スレチ
32 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200