2022-10-01から1ヶ月間の記事一覧

リンク基本事項

コンパイルした後にオブジェクトファイルをリンクして実行ファイルを作成するという作業を一般にリンクと呼ぶが、そのリンクについての理解が曖昧なので今回まとめてみることにした。 まずリンクの種類として、スタティック(静的)リンクとダイナミック(動…

RISC-V Vector拡張のアセンブリを読み解く 異なる型同士の演算

以前と同様に、RVVのアセンブリを読み解いてみようと思う。今回は型の大きさが異なる同士の演算を見ていこうと思う。 C言語ソースコード // Vectorization of Mixed Types #include <stdio.h> int foo(int *A, char *B, int n) { for (int i = 0; i < n; i++) { A[i] </stdio.h>…

1週間のまとめ 2022/10/29

1回ブログに書いたことも時間が経つとすぐに忘れてしまうので、内容を振り返って、ついでに軽くまとめることにする。普通にまとめるだけだとなんだか簡単なので、英語で書くのもありだと思ったのだが、とりあえず習慣化することが優先なので日本語でまとめる…

RISC-V Vector拡張のアセンブリを読み解く

RISC-V Vector拡張(RVV)のアセンブリを読むのにまだ慣れないので、実際に出力されたコードを読んで読み解いてみようと思う。 C言語ソースコード void loops(int n, int A[], int B[]) { for (int i = 0; i < n; i++) { A[i] *= B[i]; } } int main() { int n…

fopen_s/fprintf_sなどのセキュアCライブラリ

家庭教師としてオンラインでプログラミングを教えているのだが、その際fopen_sやfprintf_sという関数が出てきて、最初はfopenやfprintfの新しいバージョン、もしくは古いバージョンの関数かなくらいに思っていたのだが、どうもMacのgccでもclangでも「定義さ…

クイックソート メモ

いつもクイックソートの書き方がわからなくなる(セグフォとかで正確に実行できない)ことが多いので、メモとしてqsortのC言語によるアルゴリズムを書いておく。今回はCの標準ライブラリであるqsort関数とどちらが実行速度が大きいかを比較した。 #include <stdio.h> </stdio.h>…

RISC-V アセンブリを読む その2 関数呼び出し

今回は引数や返り値がわかりやすい関数呼び出しが行われているアセンブリを精査していく。 関数呼び出し #include <stdio.h> int add(int a, int b) { return a + b; } int main() { int c = 1; int d = 2; int e = add(c, d); printf("%d", e); return 0; } 00000000</stdio.h>…

RISC-V アセンブリを読む その1 Hello World

前回の「RISC-V アセンブリを読む その0 - takumi9のブログ」でアセンブリを読むための環境を作ったので、これから実際に様々なRISC-Vアセンブリを読んでいこうと思う。前回の記事の通り、gccを用いてコンパイルした。 Hello, World まずは一番基本的なコー…

RISC-V アセンブリを読む その0

RISC-Vのアセンブリの個別の命令に関してはある程度理解しているのですが、高級言語で書かれたものがどのようなアセンブリに変換されるのかの理解が乏しいので、今回はC言語をRISC-V向けにコンパイルして出力されたアセンブリを眺めてみようと思う。 以下が…

TypeScript 基本型

処理の流れ 以下が大まかな処理の流れ。まず1~3はTSにおける処理。4~6はJSにおける処理。 TypeScriptソース→TypeScript AST ASTが型チェッカーによってチェックされる TypeScript AST→JavaScriptソース JavaScriptソース→JavaScript AST AST→バイトコード バ…

RVV Intrinsicsの一部紹介 その1

RISC-V "V" Vector Extension Intrinsicsについて risc-vにはベクトル拡張というものがあり、現在公式に批准されるために評価されている段階で、仕様も凍結されている。そのため、ベクトル拡張が正式にrisc-vの拡張命令として認められる日もそう遠くはないだ…

初めての投稿

自己紹介とこのブログの目的 初めまして。東京大学のとある学部/学科に所属している者です。 ブログへの初めての投稿ということで、何を書けばいいかあまりわかっていませんが、これからは自己研鑽のために毎日1時間だけ学びたい技術を学んでその内容を投稿…