SICPã nand2tetrisã§æ±ãåéããŸãšãã.
ã¡ã¢ãªç®¡ç
ðããŒãã¡ã¢ãªãåçã¡ã¢ãªç²åŸ.
- æåã§é 匵ãïŒ: C/C++
- ðã¬ããŒãžã³ã¬ã¯ã·ã§ã³: GC
- ðæææš©(rust): Rust
ã¡ã¢ãªç²åŸ
Memoery Allocator.
Explicit allocator
C ã® malloc ã free ã§åçã«ååŸã»éæŸããã.
Inplicit allocator
ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠç²åŸãããã, éæŸãããªã.
Java ã®ã¬ããŒãžã»ã³ã¬ã¯ã·ã§ã³.
ðã¹ã¿ãã¯ã¡ã¢ãª
ã¹ã¿ãã¯ã¡ã¢ãª, stacké å.
ãœãããŠã§ã¢ãèµ·åæã«éçã«ç¢ºä¿ããã¡ã¢ãªé å. 察矩èªã¯ðããŒãã¡ã¢ãª.
ðããŒãã¡ã¢ãª
ããŒãé å, ãœãããŠã§ã¢ãå®è¡æã«åçã«å²ãåœãŠãããšãã§ããã¡ã¢ãªé å.
- ðããŒãæ§é ãšåºå¥ããããã«, heap memoryãšåŒã¶ããšãå€ã.
- ðã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¯ããŒãé åã®è§£æŸãèªåå.
ð£ã»ã°ã¡ã³ããŒã·ã§ã³éå
Segmentation Fault.
ãœãããŠã§ã¢ãã¢ã¯ã»ã¹èš±å¯ã®ãªãã¡ã¢ãªé åã«ã¢ã¯ã»ã¹ããããšããããèš±å¯ãããŠããªãæ¹æ³ã§ã¡ã¢ãªã«ã¢ã¯ã»ã¹ããããšãããšãã«çºçãããšã©ãŒ.
- OSãå æããŠããã¡ã¢ãªé åã«æžã蟌ãããšããããš.
- ãªãŒããªã³ãªãŒã®ã¡ã¢ãªé åã«æžã蟌ãããšããããš.
- é åã®ç¯å²å€ã«ã¢ã¯ã»ã¹ããããš.
- ãã§ã«è§£æŸãããã¡ã¢ãªé åã«ã¢ã¯ã»ã¹ããããš.
峿Painic
- NULLãã€ã³ã¿ã¢ã¯ã»ã¹: ðãã«ã
ð£ãã«ã
- ðJavaã®NullPointerExceptionã®ãããã¹ã©ã³ã°.
åºçŸãããšãŠã¶ãã®ã§, ã¯ãœã¿ãããªäººéããã«ãããããšãã.
ã¡ã¢ãªäºéè§£æŸ
åãã¡ã¢ãªãäºåè§£æŸ
ãã³ã°ãªã³ã°ãã€ã³ã¿
è§£æŸæžã¿ã¡ã¢ãªãžã®ã¢ã¯ã»ã¹.
ð£Buffer Overflow
ã¡ã¢ãªç Žå£. ããã°ã©ã ãæå³ããªãæ¹æ³ã§ã¡ã¢ãªã®å 容ã倿ŽããŠããŸãããš.
ãããã¡ãªãŒããŒãããŒ. ãããã¡ãªãŒããŒã©ã³ãšããã. èšèšè ãæå³ããŠããªãã¡ã¢ãªé åã®ç Žå£ãèµ·ãããããã°.
- ãããã¡ãªãŒããŒã©ã³ - Wikipedia
- å°çã®èŠãã¿ãã¡ã¢ãªç Žå£ãCppcheckã§è¯éºã«é£ãæ¢ãããïŒ | Futurismo
Heap Overflow
ð£Stack Overflow
ã¹ã¿ãã¯ãªãŒããŒãã㌠(stack overflow) ã¯, ããã°ã©ã äžã§ã®é¢æ°åŒã³åºããå€ãããæã«çºçãã.
C èšèªã¯æ«å°Ÿååž°æªãµããŒã
ååž°ã«ããç¡éã«ãŒãã§çºçãã. ãã ã, æ«å°Ÿæé©åãå®è£ ããèšèªã§ã¯æ«å°Ÿååž°ãã«ãŒããžå±éããããšãã§ã, æ«å°Ÿååž°ã§ã¯ã¹ã¿ãã¯ãªãŒããŒãããŒã¯èµ·ãããªã.
C èšèªã®ãããªå¯äœçšãšæ§é åãåºæ¬ãšããæç¶ãåèšèªã§ã¯, èšèªåŠçç³»ã«ããèªåçãªæ«å°ŸåŒã³åºããžã®å€æããã®æé©å (æ«å°Ÿæé©å) ã¯é£ãã.
ðã¡ã¢ãªãªãŒã¯
ã¡ã¢ãªè§£æŸæŒã. 確ä¿ããã¡ã¢ãªãè§£æŸãå¿ã.
ããã¯ãããããšã¡ã¢ãªãæ¯æžããã®ã§ãã·ã¹ãã ç·æ¥åæ¢ãšããããã§ã¯ãªã.
ðã¬ããŒãžã³ã¬ã¯ã·ã§ã³
ã¬ããŒãžã³ã¬ã¯ã·ã§ã³(garbage collection, GC)ãšã¯, ããã°ã©ã ãåçã«ã¡ã¢ãªãç²åŸããé åã®ãã¡, äžèŠã«ãªã£ãé åãèªåã§è§£æŸããæ©èœ.
- ãžã§ã³ã»ããã«ãŒã·ãŒãðLispã«ãŠåããŠã®å®è£ .
- ðJVMã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãæå.
- ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ - Wikipedia
References
- SICP æç¶ãã«ããæœè±¡ã®æ§ç¯ãèªãã | Futurismo
- SICP 第 2 ç« ããŒã¿ã«ããæœè±¡ã®æ§ç¯ãèªãã | Futurismo