Merge remote-tracking branch 'origin/v4' into v4
This commit is contained in:
		
							
								
								
									
										3
									
								
								content/.obsidian/appearance.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								content/.obsidian/appearance.json
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
  "accentColor": "",
 | 
			
		||||
  "cssTheme": ""
 | 
			
		||||
  "cssTheme": "",
 | 
			
		||||
  "translucency": true
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								content/.obsidian/graph.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								content/.obsidian/graph.json
									
									
									
									
										vendored
									
									
								
							@@ -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
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								content/Ardour.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								content/Ardour.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
#daw #music #software #stab
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#programminglanguage #memo #logic
 | 
			
		||||
#programming-language #memo #logic
 | 
			
		||||
 | 
			
		||||
[[Coq]]を用いた定理証明支援の基礎
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								content/Erg.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								content/Erg.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
#programming-language #stab 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#programminglanguage #sound 
 | 
			
		||||
#programming-language #sound 
 | 
			
		||||
 | 
			
		||||
Andrew Sorensenが作ったLispライブプログラミング環境。
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
#software #programminglanguage #sound 
 | 
			
		||||
#software #programming-language #sound 
 | 
			
		||||
 | 
			
		||||
https://faust.grame.fr
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#programminglanguage 
 | 
			
		||||
#programming-language 
 | 
			
		||||
 | 
			
		||||
軽量で埋め込みやすいスクリプティング言語。音楽用ソフトでは[[Reaper]]とかでも使われている。
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,10 @@
 | 
			
		||||
#programminglanguage #software #tools 
 | 
			
		||||
#programming-language #software #tools 
 | 
			
		||||
 | 
			
		||||
[[多段階計算]]を実用できる数少ない処理系。
 | 
			
		||||
 | 
			
		||||
マニュアル
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<https://okmij.org/ftp/ML/MetaOCaml.html>
 | 
			
		||||
 | 
			
		||||
https://okmij.org/ftp/tagless-final/cookbook.html#simple-staging
 | 
			
		||||
							
								
								
									
										1
									
								
								content/Reaper.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								content/Reaper.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
#daw #music #software #stab
 | 
			
		||||
							
								
								
									
										5
									
								
								content/SATySFi.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								content/SATySFi.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
#programming-language #software #domain-specific-language #DTP
 | 
			
		||||
 | 
			
		||||
Better [[TeX]]を目指した組版システム。
 | 
			
		||||
 | 
			
		||||
[[多段階計算]]による型安全なマクロが導入されている
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#paper #programminglanguage 
 | 
			
		||||
#paper #programming-language 
 | 
			
		||||
 | 
			
		||||
https://dl.acm.org/doi/10.1145/3471872.3472970
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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 なシステムを想定しているため、基本演算は項の加算と、項と定数の乗算しか使えない。
 | 
			
		||||
 
 | 
			
		||||
@@ -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をアプリ中で引き回さなくちゃいけなくなるのがやだなー
 | 
			
		||||
少なくともこれやるとマルチスレッドはめっちゃ難しくなるな
 | 
			
		||||
 
 | 
			
		||||
@@ -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/)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#programminglanguage 
 | 
			
		||||
#programming-language 
 | 
			
		||||
 | 
			
		||||
項でインデックス付された型
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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 )
 | 
			
		||||
@@ -40,3 +44,10 @@ https://link.springer.com/chapter/10.1007/978-3-030-34175-6_4
 | 
			
		||||
> .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.
 | 
			
		||||
 | 
			
		||||
この辺はなんかやりたいことに近そうな予感がする
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [[Rust]]でのプログラム合成
 | 
			
		||||
 | 
			
		||||
https://fitzgeraldnick.com/2018/11/15/program-synthesis-is-possible-in-rust.html
 | 
			
		||||
 | 
			
		||||
impl Return typeと組み合わせたらもっと派手なことできそう
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#semiconductor 
 | 
			
		||||
#semiconductor #material
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##### Bioinspired macromolecular templates for crystallographic orientation control of ZnO thin films through zinc hydroxide carbonate
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#programminglanguage  #music
 | 
			
		||||
#programming-language  #music
 | 
			
		||||
 | 
			
		||||
再帰関数の実装のベンチマークなどでよく使われる竹内関数(たらい回し関数)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#programminglanguage 
 | 
			
		||||
#programming-language 
 | 
			
		||||
 | 
			
		||||
Temporal Recursionとも。
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								content/計算機プログラムの構造と解釈.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								content/計算機プログラムの構造と解釈.md
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#research #programminglanguage #sound
 | 
			
		||||
#research #programming-language #sound
 | 
			
		||||
 | 
			
		||||
やっているプロジェクト
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
項でインデックスされた型=依存型な気がするのよな
 | 
			
		||||
 | 
			
		||||
[[多段階計算#依存型との組み合わせ]] 
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
@use "./syntax.scss";
 | 
			
		||||
@use "./callouts.scss";
 | 
			
		||||
 | 
			
		||||
@use "./variables.scss" as *;
 | 
			
		||||
html {
 | 
			
		||||
  scroll-behavior: smooth;
 | 
			
		||||
  -webkit-text-size-adjust: none;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user