diff --git a/content/.obsidian/appearance.json b/content/.obsidian/appearance.json index 5a41a71b..b4a167c3 100644 --- a/content/.obsidian/appearance.json +++ b/content/.obsidian/appearance.json @@ -1,4 +1,5 @@ { "accentColor": "", - "cssTheme": "" + "cssTheme": "", + "translucency": true } \ No newline at end of file diff --git a/content/.obsidian/graph.json b/content/.obsidian/graph.json index 12d41a9d..81214840 100644 --- a/content/.obsidian/graph.json +++ b/content/.obsidian/graph.json @@ -1,22 +1,22 @@ { "collapse-filter": false, "search": "", - "showTags": false, + "showTags": true, "showAttachments": false, - "hideUnresolved": true, + "hideUnresolved": false, "showOrphans": true, "collapse-color-groups": false, "colorGroups": [], "collapse-display": true, - "showArrow": false, + "showArrow": true, "textFadeMultiplier": 0, - "nodeSizeMultiplier": 0.717683919270833, + "nodeSizeMultiplier": 1.19899088541667, "lineSizeMultiplier": 1, "collapse-forces": false, - "centerStrength": 0.677815755208333, - "repelStrength": 16.8867003815101, - "linkStrength": 1, + "centerStrength": 0.468912760416667, + "repelStrength": 11.1808268229167, + "linkStrength": 0.893798828125, "linkDistance": 48, - "scale": 1.0101881773459105, + "scale": 1.1255374518234564, "close": true } \ No newline at end of file diff --git a/content/Ardour.md b/content/Ardour.md new file mode 100644 index 00000000..126e54cd --- /dev/null +++ b/content/Ardour.md @@ -0,0 +1 @@ +#daw #music #software #stab \ No newline at end of file diff --git a/content/Coqの勉強.md b/content/Coqの勉強.md index d78f2b63..484536c9 100644 --- a/content/Coqの勉強.md +++ b/content/Coqの勉強.md @@ -1,4 +1,4 @@ -#programminglanguage #memo #logic +#programming-language #memo #logic [[Coq]]を用いた定理証明支援の基礎 diff --git a/content/Erg.md b/content/Erg.md new file mode 100644 index 00000000..cda9a8cc --- /dev/null +++ b/content/Erg.md @@ -0,0 +1 @@ +#programming-language #stab \ No newline at end of file diff --git a/content/Extempore.md b/content/Extempore.md index 20611e19..935d6735 100644 --- a/content/Extempore.md +++ b/content/Extempore.md @@ -1,4 +1,4 @@ -#programminglanguage #sound +#programming-language #sound Andrew Sorensenが作ったLispライブプログラミング環境。 diff --git a/content/Faust.md b/content/Faust.md index 4e636793..23b53963 100644 --- a/content/Faust.md +++ b/content/Faust.md @@ -1,3 +1,3 @@ -#software #programminglanguage #sound +#software #programming-language #sound https://faust.grame.fr \ No newline at end of file diff --git a/content/Lua.md b/content/Lua.md index 0c0685c7..b8b412bb 100644 --- a/content/Lua.md +++ b/content/Lua.md @@ -1,4 +1,4 @@ -#programminglanguage +#programming-language 軽量で埋め込みやすいスクリプティング言語。音楽用ソフトでは[[Reaper]]とかでも使われている。 diff --git a/content/MetaOCaml.md b/content/MetaOCaml.md index e2228b7f..3c71c859 100644 --- a/content/MetaOCaml.md +++ b/content/MetaOCaml.md @@ -1,7 +1,10 @@ -#programminglanguage #software #tools +#programming-language #software #tools + +[[多段階計算]]を実用できる数少ない処理系。 マニュアル + https://okmij.org/ftp/tagless-final/cookbook.html#simple-staging \ No newline at end of file diff --git a/content/Reaper.md b/content/Reaper.md new file mode 100644 index 00000000..126e54cd --- /dev/null +++ b/content/Reaper.md @@ -0,0 +1 @@ +#daw #music #software #stab \ No newline at end of file diff --git a/content/SATySFi.md b/content/SATySFi.md new file mode 100644 index 00000000..d4d23f07 --- /dev/null +++ b/content/SATySFi.md @@ -0,0 +1,5 @@ +#programming-language #software #domain-specific-language #DTP + +Better [[TeX]]を目指した組版システム。 + +[[多段階計算]]による型安全なマクロが導入されている \ No newline at end of file diff --git a/content/The w-calculus a synchronous framework for the verified modelling of digital signal processing algorithms.md b/content/The w-calculus a synchronous framework for the verified modelling of digital signal processing algorithms.md index 9558f746..2adf5723 100644 --- a/content/The w-calculus a synchronous framework for the verified modelling of digital signal processing algorithms.md +++ b/content/The w-calculus a synchronous framework for the verified modelling of digital signal processing algorithms.md @@ -1,4 +1,4 @@ -#paper #programminglanguage +#paper #programming-language https://dl.acm.org/doi/10.1145/3471872.3472970 diff --git a/content/mimium新内部表現の構想.md b/content/mimium新内部表現の構想.md index ad72cfa6..d658de2b 100644 --- a/content/mimium新内部表現の構想.md +++ b/content/mimium新内部表現の構想.md @@ -1,10 +1,10 @@ -#memo #mimium #programminglanguage +#memo #mimium #programming-language [[音楽プログラミング言語の形式化#mimium と 多段階計算]] [[多段階計算]]を取り入れたい -とりあえず$W$ Calculusを自然に拡張してみる。 +とりあえず[[The w-calculus a synchronous framework for the verified modelling of digital signal processing algorithms|W Calculus]]を自然に拡張してみる。 $W$ Calculusとmimiumの形式は似ているが、主に2つの違いがある。 1. $W$ Calculus はLinear-Time Invariant なシステムを想定しているため、基本演算は項の加算と、項と定数の乗算しか使えない。 diff --git a/content/otopoiesis.md b/content/otopoiesis.md index 52fa49ce..316daacc 100644 --- a/content/otopoiesis.md +++ b/content/otopoiesis.md @@ -1,9 +1,13 @@ -#programminglanguage #sound +#programming-language #sound https://github.com/tomoyanonymous/otopoiesis DAWをプログラマブルにする試み +``` +#[param("hoge",0..8)] +let p1 = 1.0; +``` --- @@ -166,3 +170,11 @@ fileplayerのui実装もgeneratorからregionに移そう そうなるとaudio側の実装もそっちに合わせるのが自然だよな・・・ + +完全にValueを64bitで静的型付けとして扱う時の、擬似的に動的型チェックする方法がないか + +id_arenaのIDが128bitである限りちょっと厳しそう +プロジェクト、トラック、リージョンが限られた数であることを前提にすればNaNBoxingもできなくはなさそうだが、、、 + +コンパイラのContextをアプリ中で引き回さなくちゃいけなくなるのがやだなー +少なくともこれやるとマルチスレッドはめっちゃ難しくなるな diff --git a/content/プログラミング言語理論一般.md b/content/プログラミング言語理論一般.md index 3faedc7d..8ff48767 100644 --- a/content/プログラミング言語理論一般.md +++ b/content/プログラミング言語理論一般.md @@ -2,6 +2,9 @@ [[Node.jsで約100行で書くLISP風ラムダ計算]] + +[[計算機プログラムの構造と解釈]] + [[Language Server Protocol]] [Write a JavaScript Parser in Rust](https://oxc-project.github.io/javascript-parser-in-rust/ja/docs/intro/) diff --git a/content/依存型.md b/content/依存型.md index 3562b748..67b46081 100644 --- a/content/依存型.md +++ b/content/依存型.md @@ -1,4 +1,4 @@ -#programminglanguage +#programming-language 項でインデックス付された型 diff --git a/content/多段階計算.md b/content/多段階計算.md index 7c9364f1..9edaaf8b 100644 --- a/content/多段階計算.md +++ b/content/多段階計算.md @@ -1,9 +1,13 @@ - #programminglanguage + #programming-language メタプログラミングの技法の一種。[[MetaOCaml]]などが有名 https://www.pls-lab.org/en/multi-stage-programming +[[Scala]]のバージョン3にも導入されてるらしい + +https://logmi.jp/tech/articles/324146 + 日本語での詳細な解説 MetaOCaml を使った自己反映言語のコンパイル 浅井 健一 (Black ) @@ -39,4 +43,11 @@ https://link.springer.com/chapter/10.1007/978-3-030-34175-6_4 > Our goal is to define the function `vadd` of type $$Πn : Int.∀β.⊲β(Vector (\%_αn) → Vector (\%_αn) → Vector (\%_αn))$$ > .It takes the length n and returns (β-closed) code of a function to add two vectors of length n. The generated code is run by applying it to ε to obtain a function of type $Vector\; n → Vector\; n → Vector\; n$ as expected. -この辺はなんかやりたいことに近そうな予感がする \ No newline at end of file +この辺はなんかやりたいことに近そうな予感がする + + +## [[Rust]]でのプログラム合成 + +https://fitzgeraldnick.com/2018/11/15/program-synthesis-is-possible-in-rust.html + +impl Return typeと組み合わせたらもっと派手なことできそう \ No newline at end of file diff --git a/content/炭酸亜鉛.md b/content/炭酸亜鉛.md index 1f7ec663..87c3dd2d 100644 --- a/content/炭酸亜鉛.md +++ b/content/炭酸亜鉛.md @@ -1,4 +1,4 @@ -#semiconductor +#semiconductor #material ##### Bioinspired macromolecular templates for crystallographic orientation control of ZnO thin films through zinc hydroxide carbonate diff --git a/content/竹内関数で音楽.md b/content/竹内関数で音楽.md index d6b82183..e5807e80 100644 --- a/content/竹内関数で音楽.md +++ b/content/竹内関数で音楽.md @@ -1,4 +1,4 @@ -#programminglanguage #music +#programming-language #music 再帰関数の実装のベンチマークなどでよく使われる竹内関数(たらい回し関数) diff --git a/content/継時再帰.md b/content/継時再帰.md index 639b82fe..565096c9 100644 --- a/content/継時再帰.md +++ b/content/継時再帰.md @@ -1,4 +1,4 @@ -#programminglanguage +#programming-language Temporal Recursionとも。 diff --git a/content/計算機プログラムの構造と解釈.md b/content/計算機プログラムの構造と解釈.md new file mode 100644 index 00000000..7b188533 --- /dev/null +++ b/content/計算機プログラムの構造と解釈.md @@ -0,0 +1,14 @@ +#book #programming-language #compiler-design + + IIJ研究所 HTML版 +  + [計算機プログラムの構造と解釈](http://books.shoeisha.co.jp/book/b177731.html) + +https://web.mit.edu/6.001/6.037/sicp.pdf + +Javascript Edition + +内容はほぼ同じっぽい(メタサーキュラー魔でやってる) + +https://sourceacademy.org/sicpjs/index + diff --git a/content/音楽プログラミング言語.md b/content/音楽プログラミング言語.md index 91150c9b..1a1cc476 100644 --- a/content/音楽プログラミング言語.md +++ b/content/音楽プログラミング言語.md @@ -1,4 +1,4 @@ -#research #programminglanguage #sound +#research #programming-language #sound やっているプロジェクト diff --git a/content/音楽プログラミング言語の形式化.md b/content/音楽プログラミング言語の形式化.md index 603f504e..77970297 100644 --- a/content/音楽プログラミング言語の形式化.md +++ b/content/音楽プログラミング言語の形式化.md @@ -1,4 +1,4 @@ -#programminglanguage #research +#programming-language #research ## 先行例 @@ -152,6 +152,28 @@ process = hmtx(16); この辺は、多段階計算を使ったとしても生成したコードの型を変えるみたいなことは出来ないのでは? +```rust +fn hmtx(n:int)-> <[float;n]->[float;n]>{ + assert!(n>=2 && n%2 == 0); + if(n==2){ + `|list|{ [list[0]+list[1], list[0]-list[1]] } + }else{ + `|list:[float]|{ + let mixer = interleave + |> |(l1,l2)| {zipwith(l1,l2).map(|(a,b)| a + b)}; + |> ~hmtx(n/2); + let upper = list |> mixer; + let lower = list + |> split(_,2) + |>|(l1,l2)| {(l1,l2.map(|a| -a))} + |> mixer; + join(upper,lower) + } + } +} + +``` + 項でインデックスされた型=依存型な気がするのよな [[多段階計算#依存型との組み合わせ]]  diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index 60fa40d1..372554ac 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -1,6 +1,6 @@ @use "./syntax.scss"; @use "./callouts.scss"; - +@use "./variables.scss" as *; html { scroll-behavior: smooth; -webkit-text-size-adjust: none;