…L@g¤)lÛÀX K"Y^ÒšTy"È¡a"²*µöz½0uü°êN(x`¶X@ÆÀÄbü˜Øqlñw¤›lԳȉ.VOjÒ­ô#Ë-ò›<3vJýíÿ¶Ž~œ-á#¥m÷Í¥€ò[-ØPîY“§bidÈddates2025-01-10T23:55:00etitlexS演算å­ãŒ1ã¤ã‚‚ãªã„2025年生ã¾ã‚Œã®æ–°ãƒ—ログラミング言語「Nopã€dtagsn#KidsIT #Wirthcurlxhttps://fukuno.jig.jp/4552dbodyy‹ 共通テストã§ã®æŽ¡ç”¨ã‚’目指ã—ã¦é–‹ç™ºã—ãŸã€æ–°ã—ã„構造化プログラミング言語「DNCL3ã€ã€‚
DNCL3ã®æ‹¬å¼§ã§è¡¨ã—ã¦ã„ãŸæ§‹é€ ã‚’英å˜èªžã«å¤‰ãˆãŸã€ŒWirthã€ã€‚
Wirthを削ãŽè½ã¨ã—ã€æ¼”算用ã«ãŸã£ãŸ1ã¤ã®è«–ç†æ¼”ç®—å­ã—ã‹æŒãŸãªã„「Norã¨ã€ŒNandã€ã‚’開発。
ãã—ã¦ä»Šå›žã€ifæ–‡ãŒã‚れ㰠nor ã‚‚ä¸è¦ã¨ã‚³ãƒ¡ãƒ³ãƒˆã‚’ã„ãŸã ãã€æ¼”算用ã®æ¼”ç®—å­ãŒãªã„言語を「Nopã€ã‚’開発。


「Nop - no operators programming languageã€

演算å­ãŒ1ã¤ã‚‚ãªã„プログラミング言語「Nopã€ã¯ã€å­—å¥è§£æžã§æ¼”ç®—å­ã‚’è¿”ã•ãšï¼ˆNop.js getToken)ã€å®Ÿè¡Œç’°å¢ƒï¼ˆä»®æƒ³ãƒžã‚·ãƒ³ï¼‰ã«ã‚‚演算命令ãŒã‚ã‚Šã¾ã›ã‚“(Runtime.js calcExpression)。

æ¡ä»¶åˆ†å² if ã¨ã€ç¹°ã‚Šè¿”ã— loopã€æ©Ÿèƒ½ï¼ˆé–¢æ•°ï¼‰ function ã¨ã„ã†æ§‹é€ åŒ–プログラミング言語ã®åŸºæœ¬ã‚’使ã£ã¦ã€Norã‚„Nandoã¨åŒæ§˜ã€å¦å®š(not)ã€è«–ç†ç©(and)ã€è«–ç†å’Œ(or)を機能ã¨ã—ã¦å®Ÿè£…ã—ã¦ã€è¶³ã—ç®—ã€æŽ›ã‘ç®—ã®ã©ã€å¿…è¦ãªæ©Ÿèƒ½ã‚’実装ã—ã¦ã„ãã“ã¨ãŒã§ãã¾ã™ã€‚

ã“ã¡ã‚‰ã€ã¯ã˜ã‚ã®ã„ã£ã½ã€å¦å®šã®æ©Ÿèƒ½ not ã®å®Ÿè£…例(RUN on Nop Playground)

function not(a) if a return 0 else return 1 endif end

Norã‚„Nandã§ã¯æ•°ã‚’é…列を使ã£ã¦è¡¨ç¾ã—ã¦ã„ã¾ã—ãŸãŒã€æ•°ãŒå…¥ã£ãŸå¤‰æ•°ã«æ·»ãˆå­—を付ã‘ãŸå ´åˆã€æœ€ä¸‹ä½ãƒ“ットã‹ã‚‰ã®ä½ç½®ã‚’表ã™ã‚ˆã†ã«ã—ãŸã¨ã“ã‚ã€ãƒ—ログラムãŒè¦‹ã‚„ã™ããªã‚Šã¾ã—ãŸï¼

例ãˆã°ã€äºŒé€²æ³•ã ã¨ 110 ã¨ãªã‚‹å進法㮠6 を変数ã«å…¥ã‚Œã€æ·»ãˆå­—ã§ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã¿ã‚‹ã¨

a = 6 print a[2], a[1], a[0]

1 1 0 ã¨è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚

ã“ã¡ã‚‰å¿œç”¨ã€4bitã®è¶³ã—ç®—ã®å®Ÿè£…例(RUN on Nop Playground)

function add(a, b) cs0 = fulladd(a[0], b[0], 0) cs1 = fulladd(a[1], b[1], cs0[0]) cs2 = fulladd(a[2], b[2], cs1[0]) cs3 = fulladd(a[3], b[3], cs2[0]) s = 0 s[0] = cs0[1] s[1] = cs1[1] s[2] = cs2[1] s[3] = cs3[1] return s end

not, and, or ã®æ©Ÿèƒ½ã‚’作ã£ã¦ã•ãˆã—ã¾ãˆã°ã€Norã¨Nandã¨åŒã˜ã§ã™ã€‚
5 * 3 を計算ã™ã‚‹ã€4bitã®æŽ›ã‘算サンプル mul.nop ã‚‚ãŠè©¦ã—ãã ã•ã„。


「ãªãœã‚³ãƒ³ãƒ”ューターã¯è¨ˆç®—ãŒé€Ÿã„ã®ã‹ï¼Ÿ 電気回路ã§è¨ˆç®—ãŒã§ãる謎を解ãã€

コンピューターã¯ã‚¹ã‚¤ãƒƒãƒï¼ˆãƒˆãƒ©ãƒ³ã‚¸ã‚¹ã‚¿ï¼‰ã§ã§ãã¦ã„ã‚‹ã¨è§£èª¬ã—ãŸãƒ–ログã®é€šã‚Šã€ã‚¹ã‚¤ãƒƒãƒã®ON/OFFã€ã¤ã¾ã‚Š 0 ã‹ 1 ã§åˆ¶å¾¡ã™ã‚‹ if 文もã‚らゆる計算を実ç¾ã™ã‚‹æœ€å°å˜ä½ã«ãªã‚Šã†ã‚‹ã‚ã‘ã§ã™ã€‚

ã¾ãŸã€ã‚³ãƒ³ãƒ”ューターã®ã‚‚ã†ä¸€ã¤ã®å¼·ã¿ã€Œè¨˜æ†¶ã€ã®å®Ÿç¾ã‚‚スイッãƒï¼ˆãƒˆãƒ©ãƒ³ã‚¸ã‚¹ã‚¿ï¼‰ã‚’使ã£ã¦å®Ÿç¾ã§ãã‚‹ãŸã‚ã€ã‚³ãƒ³ãƒ”ュターã¯ãƒˆãƒ©ãƒ³ã‚¸ã‚¹ã‚¿ã®é›†åˆã§ä½œã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚(å‚考ã€ãƒ•ãƒªãƒƒãƒ—フロップ - Wikipedia)

NVIDIAã‹ã‚‰ç™ºè¡¨ã•ã‚ŒãŸæœ€æ–°ã®GPUã€GeForce RTX 5090 ã®ãƒˆãƒ©ãƒ³ã‚¸ã‚¹ã‚¿æ•°ã¯ã€920億コï¼
1秒間ã«20億回計算ã™ã‚‹ã‚³ãƒ³ãƒ”ューターãŒã€ãªã‚“ã¨ã€2万コ入ã£ã¦ã„ã¾ã™ã€‚
(å‚考ã€GeForce RTX 5090 グラフィックスカード | NVIDIA)

æ ¹ã£ã“ã¯ã‚·ãƒ³ãƒ—ルã€ã§ã‚‚ã€å¤šé‡ã‹ã¤é«˜é€Ÿã«å‹•ã‹ã™ã¨ã‚¹ã‚´ã‚¤ï¼
Nopã€Norã€Nand ã¯ã€ã‚³ãƒ³ãƒ”ューターã®ãŠã‚‚ã—ã‚ã•ã«è¿«ã‚‹ãŸã‚ã®æ§‹é€ åŒ–プログラミング言語群ã§ã™ã€‚

links
- 演算å­ãŒ1ã¤ã—ã‹ãªã„2025年生ã¾ã‚Œã®æ–°ãƒ—ログラミング言語「Nandã€
- 演算å­ãŒ1ã¤ã—ã‹ãªã„2025年生ã¾ã‚Œã®æ–°ãƒ—ログラミング言語「Norã€
- Pascalリスペクトã®æ•™è‚²ç”¨æ§‹é€ åŒ–プログラミング言語「Wirthã€
cimgxKhttps://img.sabae.cc/data/20250111/2dbd307f-7c5c-4c43-b5ec-d02d3d615c86.jpg