[フレーム]
PDF, PPTX15,578 views

Metasepi team meeting #14: ATS programming on MCU

The document summarizes the 14th meeting of the Metasepi team focused on ATS programming on microcontrollers (MCUs). It covers topics such as the Metasepi project, the AJHC Haskell compiler, and demos using ATS language on various platforms like Arduino and Mbed. Additionally, it emphasizes the need for Metasepi and its advantages in programming with type safety to reduce runtime errors.

Embed presentation

Download as PDF, PPTX
2 / 22
Who am I?Who am I?Who am I?Who am I?Who am I? ☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/ ☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer ☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN ☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project ☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD
3 / 22
Demo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in Haskell ☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following https://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cA ☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014 http://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdf
4 / 22
Ajhc Haskell compilerAjhc Haskell compilerAjhc Haskell compilerAjhc Haskell compilerAjhc Haskell compiler http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/ ☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc ☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler ☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/ ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.
7 / 22
Why need Metasepi?Why need Metasepi?Why need Metasepi?Why need Metasepi?Why need Metasepi? ☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows. ☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering. ☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you, ☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error. ☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.
20 / 22
Japan ATS User GroupJapan ATS User GroupJapan ATS User GroupJapan ATS User GroupJapan ATS User Group http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/ ☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/ ☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese ☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!
21 / 22
Many translated documentsMany translated documentsMany translated documentsMany translated documentsMany translated documents * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md
Metasepi team meeting #14: ATS programming on MCU Metasepi team meeting #14: ATS programming on MCU Metasepi team meeting #14: ATS programming on MCU Metasepi team meeting #14: ATS programming on MCU Metasepi team meeting #14: ATS programming on MCU Kiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi Project
Who am I?Who am I?Who am I?Who am I?Who am I? ☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/ ☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer ☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN ☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project ☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD
Demo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in Haskell ☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following https://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cA ☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014 http://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdf
Ajhc Haskell compilerAjhc Haskell compilerAjhc Haskell compilerAjhc Haskell compilerAjhc Haskell compiler http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/ ☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc ☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler ☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/ ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.
AgendaAgendaAgendaAgendaAgenda ☆ [1] What is Ajhc?☆ [1] What is Ajhc?☆ [1] What is Ajhc?☆ [1] What is Ajhc?☆ [1] What is Ajhc? ☆ [2] What is Metasepi?☆ [2] What is Metasepi?☆ [2] What is Metasepi?☆ [2] What is Metasepi?☆ [2] What is Metasepi? ☆ [3] Demo using ATS language☆ [3] Demo using ATS language☆ [3] Demo using ATS language☆ [3] Demo using ATS language☆ [3] Demo using ATS language ☆ [4] What is ATS?☆ [4] What is ATS?☆ [4] What is ATS?☆ [4] What is ATS?☆ [4] What is ATS? ☆ [5] ATS programming on MCU☆ [5] ATS programming on MCU☆ [5] ATS programming on MCU☆ [5] ATS programming on MCU☆ [5] ATS programming on MCU
What is Metasepi?What is Metasepi?What is Metasepi?What is Metasepi?What is Metasepi? http://metasepi.org/http://metasepi.org/http://metasepi.org/http://metasepi.org/http://metasepi.org/ ☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type. ☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.
Why need Metasepi?Why need Metasepi?Why need Metasepi?Why need Metasepi?Why need Metasepi? ☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows. ☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering. ☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you, ☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error. ☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.
Type safetyType safetyType safetyType safetyType safety ☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors. ☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ" http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/
How create Metasepi?How create Metasepi?How create Metasepi?How create Metasepi?How create Metasepi?
Snatch-driven developmentSnatch-driven developmentSnatch-driven developmentSnatch-driven developmentSnatch-driven development Dogfooding style.Dogfooding style.Dogfooding style.Dogfooding style.Dogfooding style.
Demo: ATS on raw ArduinoDemo: ATS on raw ArduinoDemo: ATS on raw ArduinoDemo: ATS on raw ArduinoDemo: ATS on raw Arduino https://github.com/fpiot/arduino-mega2560-atshttps://github.com/fpiot/arduino-mega2560-atshttps://github.com/fpiot/arduino-mega2560-atshttps://github.com/fpiot/arduino-mega2560-atshttps://github.com/fpiot/arduino-mega2560-ats
Demo: ATS on mbed platformDemo: ATS on mbed platformDemo: ATS on mbed platformDemo: ATS on mbed platformDemo: ATS on mbed platform https://github.com/fpiot/mbed-atshttps://github.com/fpiot/mbed-atshttps://github.com/fpiot/mbed-atshttps://github.com/fpiot/mbed-atshttps://github.com/fpiot/mbed-ats
What is ATS language?What is ATS language?What is ATS language?What is ATS language?What is ATS language? http://www.ats-lang.org/http://www.ats-lang.org/http://www.ats-lang.org/http://www.ats-lang.org/http://www.ats-lang.org/ ☆ Syntax like ML☆ Syntax like ML☆ Syntax like ML☆ Syntax like ML☆ Syntax like ML ☆ Dependent types☆ Dependent types☆ Dependent types☆ Dependent types☆ Dependent types ☆ Linear types☆ Linear types☆ Linear types☆ Linear types☆ Linear types ☆ Without any runtime☆ Without any runtime☆ Without any runtime☆ Without any runtime☆ Without any runtime ☆ Optional GC☆ Optional GC☆ Optional GC☆ Optional GC☆ Optional GC
ATS compile flowATS compile flowATS compile flowATS compile flowATS compile flow
ATS programming on MCUATS programming on MCUATS programming on MCUATS programming on MCUATS programming on MCU You can choose the following 2-way.You can choose the following 2-way.You can choose the following 2-way.You can choose the following 2-way.You can choose the following 2-way. On BareMetal hardwareOn BareMetal hardwareOn BareMetal hardwareOn BareMetal hardwareOn BareMetal hardware ☆ Arduino (8-bit AVR)☆ Arduino (8-bit AVR)☆ Arduino (8-bit AVR)☆ Arduino (8-bit AVR)☆ Arduino (8-bit AVR) ☆ Cortex-M (32-bit ARM)☆ Cortex-M (32-bit ARM)☆ Cortex-M (32-bit ARM)☆ Cortex-M (32-bit ARM)☆ Cortex-M (32-bit ARM) On RTOSOn RTOSOn RTOSOn RTOSOn RTOS ☆ mbed☆ mbed☆ mbed☆ mbed☆ mbed ☆ ChibiOS/RT☆ ChibiOS/RT☆ ChibiOS/RT☆ ChibiOS/RT☆ ChibiOS/RT
ATS on BareMetal hardwareATS on BareMetal hardwareATS on BareMetal hardwareATS on BareMetal hardwareATS on BareMetal hardware Read/write memory using pointer.Read/write memory using pointer.Read/write memory using pointer.Read/write memory using pointer.Read/write memory using pointer.
ATS on RTOSATS on RTOSATS on RTOSATS on RTOSATS on RTOS Interaction with C.Interaction with C.Interaction with C.Interaction with C.Interaction with C.
Produce/Consume Linear TypeProduce/Consume Linear TypeProduce/Consume Linear TypeProduce/Consume Linear TypeProduce/Consume Linear Type
At-viewAt-viewAt-viewAt-viewAt-view
Japan ATS User GroupJapan ATS User GroupJapan ATS User GroupJapan ATS User GroupJapan ATS User Group http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/ ☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/ ☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese ☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!
Many translated documentsMany translated documentsMany translated documentsMany translated documentsMany translated documents * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md
Follow me!Follow me!Follow me!Follow me!Follow me! https://twitter.com/jats_ughttps://twitter.com/jats_ughttps://twitter.com/jats_ughttps://twitter.com/jats_ughttps://twitter.com/jats_ug

More Related Content

Start! ATS programming
PDF
Start! ATS programming
Hands-on VeriFast with STM32 microcontroller
PDF
Hands-on VeriFast with STM32 microcontroller
Static typing and proof in ATS language
PDF
Static typing and proof in ATS language
Metasepi team meeting #16: Safety on ATS language + MCU
PDF
Metasepi team meeting #16: Safety on ATS language + MCU
ATS Programming Tutorial
PDF
ATS Programming Tutorial
Metasepi team meeting #20: Start! ATS programming on MCU
PDF
Metasepi team meeting #20: Start! ATS programming on MCU
Real-time OS system state captured by ATS language
PDF
Real-time OS system state captured by ATS language
Metasepi team meeting #19: ATS application on Arduino
PDF
Metasepi team meeting #19: ATS application on Arduino
Start! ATS programming
Start! ATS programming
Hands-on VeriFast with STM32 microcontroller
Hands-on VeriFast with STM32 microcontroller
Static typing and proof in ATS language
Static typing and proof in ATS language
Metasepi team meeting #16: Safety on ATS language + MCU
Metasepi team meeting #16: Safety on ATS language + MCU
ATS Programming Tutorial
ATS Programming Tutorial
Metasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCU
Real-time OS system state captured by ATS language
Real-time OS system state captured by ATS language
Metasepi team meeting #19: ATS application on Arduino
Metasepi team meeting #19: ATS application on Arduino

What's hot

Ajhc Haskell Compiler with Reentrant GC
PDF
Ajhc Haskell Compiler with Reentrant GC
ATS programming on ESP8266
PDF
ATS programming on ESP8266
ATS language overview'
PDF
ATS language overview'
ATS2 updates 2017
PDF
ATS2 updates 2017
⛳️ Votre API passe-t-elle le contrôle technique ?
PDF
⛳️ Votre API passe-t-elle le contrôle technique ?
Monkey-patching in Python: a magic trick or a powerful tool?
PDF
Monkey-patching in Python: a magic trick or a powerful tool?
Embedded application designed by ATS language
PDF
Embedded application designed by ATS language
Past and today of Metasepi project
PDF
Past and today of Metasepi project
Functional IoT: Programming Language and OS
PDF
Functional IoT: Programming Language and OS
Emacs verilog-mode is coming to Debian, again
PDF
Emacs verilog-mode is coming to Debian, again
Functional IoT: Hardware and Platform
PDF
Functional IoT: Hardware and Platform
Functional IoT: Introduction
PDF
Functional IoT: Introduction
ATS/LF for Coq users
PDF
ATS/LF for Coq users
Let's contribute, HTML5Rocks/ko!
PDF
Let's contribute, HTML5Rocks/ko!
2009 Eclipse Con
ODP
2009 Eclipse Con
Javascript on Arduino
ODP
Javascript on Arduino
Debugging with pry
PDF
Debugging with pry
Development Principles & Philosophy
PDF
Development Principles & Philosophy
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
PDF
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Metasepi team meeting #17: Invariant captured by ATS's API
PDF
Metasepi team meeting #17: Invariant captured by ATS's API
Ajhc Haskell Compiler with Reentrant GC
Ajhc Haskell Compiler with Reentrant GC
ATS programming on ESP8266
ATS programming on ESP8266
ATS language overview'
ATS language overview'
ATS2 updates 2017
ATS2 updates 2017
⛳️ Votre API passe-t-elle le contrôle technique ?
⛳️ Votre API passe-t-elle le contrôle technique ?
Monkey-patching in Python: a magic trick or a powerful tool?
Monkey-patching in Python: a magic trick or a powerful tool?
Embedded application designed by ATS language
Embedded application designed by ATS language
Past and today of Metasepi project
Past and today of Metasepi project
Functional IoT: Programming Language and OS
Functional IoT: Programming Language and OS
Emacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, again
Functional IoT: Hardware and Platform
Functional IoT: Hardware and Platform
Functional IoT: Introduction
Functional IoT: Introduction
ATS/LF for Coq users
ATS/LF for Coq users
Let's contribute, HTML5Rocks/ko!
Let's contribute, HTML5Rocks/ko!
2009 Eclipse Con
2009 Eclipse Con
Javascript on Arduino
Javascript on Arduino
Debugging with pry
Debugging with pry
Development Principles & Philosophy
Development Principles & Philosophy
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Gareth Rushgrove (Puppet) - Ubiquity at #DOXLON
Metasepi team meeting #17: Invariant captured by ATS's API
Metasepi team meeting #17: Invariant captured by ATS's API

Similar to Metasepi team meeting #14: ATS programming on MCU

Qemu JIT Code Generator and System Emulation
PDF
Qemu JIT Code Generator and System Emulation
Functional MCU programming #0: Development environment
PDF
Functional MCU programming #0: Development environment
Free / Open Source EDA Tools
PDF
Free / Open Source EDA Tools
Unit III ARM Interface and ARM Programming
PDF
Unit III ARM Interface and ARM Programming
Intro to embedded systems programming
PDF
Intro to embedded systems programming
Some experiences for porting application to Intel Xeon Phi
PDF
Some experiences for porting application to Intel Xeon Phi
Tools for FPGA Development
PDF
Tools for FPGA Development
Linux on System z debugging with Valgrind
PDF
Linux on System z debugging with Valgrind
FPGA @ UPB-BGA
PDF
FPGA @ UPB-BGA
今日から始めるPlan 9 from Bell Labs
PDF
今日から始めるPlan 9 from Bell Labs
Creating an Embedded System Lab
PDF
Creating an Embedded System Lab
05 defense
PDF
05 defense
Metasepi team meeting #13: NetBSD driver using Haskell
PDF
Metasepi team meeting #13: NetBSD driver using Haskell
Functional MCU programming
PDF
Functional MCU programming
Metasepi team meeting #7: Snatch application on tiny OS
PDF
Metasepi team meeting #7: Snatch application on tiny OS
Metasepi team meeting #6: "Snatch-driven development"
PDF
Metasepi team meeting #6: "Snatch-driven development"
ESL Anyone?
PDF
ESL Anyone?
01 isa
PDF
01 isa
International Journal of Computational Engineering Research(IJCER)
PDF
International Journal of Computational Engineering Research(IJCER)
Dmitriy D1g1 Evdokimov - DBI Intro
PDF
Dmitriy D1g1 Evdokimov - DBI Intro
Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
Functional MCU programming #0: Development environment
Functional MCU programming #0: Development environment
Free / Open Source EDA Tools
Free / Open Source EDA Tools
Unit III ARM Interface and ARM Programming
Unit III ARM Interface and ARM Programming
Intro to embedded systems programming
Intro to embedded systems programming
Some experiences for porting application to Intel Xeon Phi
Some experiences for porting application to Intel Xeon Phi
Tools for FPGA Development
Tools for FPGA Development
Linux on System z debugging with Valgrind
Linux on System z debugging with Valgrind
FPGA @ UPB-BGA
FPGA @ UPB-BGA
今日から始めるPlan 9 from Bell Labs
今日から始めるPlan 9 from Bell Labs
Creating an Embedded System Lab
Creating an Embedded System Lab
05 defense
05 defense
Metasepi team meeting #13: NetBSD driver using Haskell
Metasepi team meeting #13: NetBSD driver using Haskell
Functional MCU programming
Functional MCU programming
Metasepi team meeting #7: Snatch application on tiny OS
Metasepi team meeting #7: Snatch application on tiny OS
Metasepi team meeting #6: "Snatch-driven development"
Metasepi team meeting #6: "Snatch-driven development"
ESL Anyone?
ESL Anyone?
01 isa
01 isa
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
Dmitriy D1g1 Evdokimov - DBI Intro
Dmitriy D1g1 Evdokimov - DBI Intro

Recently uploaded

The Beginner-Friendly Guide to Web Scraping with Rust - Unlocking the Power o...
PPTX
The Beginner-Friendly Guide to Web Scraping with Rust - Unlocking the Power o...
[BDD 2025 - Full-Stack Development] PHP in AI Age: The Laravel Way. (Rizqy Hi...
PDF
[BDD 2025 - Full-Stack Development] PHP in AI Age: The Laravel Way. (Rizqy Hi...
System Software_CIE_AS_LEVEL_CS_9618 .pptx
PPTX
System Software_CIE_AS_LEVEL_CS_9618 .pptx
"Feelings versus facts: why metrics are more important than intuition", Igor ...
PPTX
"Feelings versus facts: why metrics are more important than intuition", Igor ...
Mulesoft Meetup Online Portuguese: MCP e IA
PDF
Mulesoft Meetup Online Portuguese: MCP e IA
Getting the Best of TrueDEM – November News & Updates
PDF
Getting the Best of TrueDEM – November News & Updates
Leon Brands - Methodical GPU Profiling (Graphics Programming Conference 2025)
PPTX
Leon Brands - Methodical GPU Profiling (Graphics Programming Conference 2025)
[BDD 2025 - Mobile Development] Crafting Immersive UI with E2E and AGSL Shade...
PDF
[BDD 2025 - Mobile Development] Crafting Immersive UI with E2E and AGSL Shade...
How Much Does It Cost to Build an eCommerce Website in 2025.pdf
PDF
How Much Does It Cost to Build an eCommerce Website in 2025.pdf
10 Best Automation QA Testing Software Tools in 2025.pdf
PDF
10 Best Automation QA Testing Software Tools in 2025.pdf
[BDD 2025 - Full-Stack Development] Digital Accessibility: Why Developers nee...
PDF
[BDD 2025 - Full-Stack Development] Digital Accessibility: Why Developers nee...
Penetration Testing: Enhancing Cyber Defenses Through Realistic Attack Simula...
PPTX
Penetration Testing: Enhancing Cyber Defenses Through Realistic Attack Simula...
Overview Description of Every LLM Posting as of November 2025
PDF
Overview Description of Every LLM Posting as of November 2025
Genesys Vision & CX Trends 2026 Unlocking Business Value in the Experience Ec...
PDF
Genesys Vision & CX Trends 2026 Unlocking Business Value in the Experience Ec...
Integrating AI with Meaningful Human Collaboration
PDF
Integrating AI with Meaningful Human Collaboration
Top 10 Local IT Managed Service Providers in Los Angeles
PDF
Top 10 Local IT Managed Service Providers in Los Angeles
Welcome by Uni Systems: Shaping Experiences
PDF
Welcome by Uni Systems: Shaping Experiences
Transcript: The partnership effect: Libraries and publishers on collaborating...
PDF
Transcript: The partnership effect: Libraries and publishers on collaborating...
CompTIA Cybersecurity Analyst (CySA+) CS0-003: Unit 2
PDF
CompTIA Cybersecurity Analyst (CySA+) CS0-003: Unit 2
Accessibility & Inclusion: What Comes Next. Presentation of the Digital Acces...
PDF
Accessibility & Inclusion: What Comes Next. Presentation of the Digital Acces...
The Beginner-Friendly Guide to Web Scraping with Rust - Unlocking the Power o...
The Beginner-Friendly Guide to Web Scraping with Rust - Unlocking the Power o...
[BDD 2025 - Full-Stack Development] PHP in AI Age: The Laravel Way. (Rizqy Hi...
[BDD 2025 - Full-Stack Development] PHP in AI Age: The Laravel Way. (Rizqy Hi...
System Software_CIE_AS_LEVEL_CS_9618 .pptx
System Software_CIE_AS_LEVEL_CS_9618 .pptx
"Feelings versus facts: why metrics are more important than intuition", Igor ...
"Feelings versus facts: why metrics are more important than intuition", Igor ...
Mulesoft Meetup Online Portuguese: MCP e IA
Mulesoft Meetup Online Portuguese: MCP e IA
Getting the Best of TrueDEM – November News & Updates
Getting the Best of TrueDEM – November News & Updates
Leon Brands - Methodical GPU Profiling (Graphics Programming Conference 2025)
Leon Brands - Methodical GPU Profiling (Graphics Programming Conference 2025)
[BDD 2025 - Mobile Development] Crafting Immersive UI with E2E and AGSL Shade...
[BDD 2025 - Mobile Development] Crafting Immersive UI with E2E and AGSL Shade...
How Much Does It Cost to Build an eCommerce Website in 2025.pdf
How Much Does It Cost to Build an eCommerce Website in 2025.pdf
10 Best Automation QA Testing Software Tools in 2025.pdf
10 Best Automation QA Testing Software Tools in 2025.pdf
[BDD 2025 - Full-Stack Development] Digital Accessibility: Why Developers nee...
[BDD 2025 - Full-Stack Development] Digital Accessibility: Why Developers nee...
Penetration Testing: Enhancing Cyber Defenses Through Realistic Attack Simula...
Penetration Testing: Enhancing Cyber Defenses Through Realistic Attack Simula...
Overview Description of Every LLM Posting as of November 2025
Overview Description of Every LLM Posting as of November 2025
Genesys Vision & CX Trends 2026 Unlocking Business Value in the Experience Ec...
Genesys Vision & CX Trends 2026 Unlocking Business Value in the Experience Ec...
Integrating AI with Meaningful Human Collaboration
Integrating AI with Meaningful Human Collaboration
Top 10 Local IT Managed Service Providers in Los Angeles
Top 10 Local IT Managed Service Providers in Los Angeles
Welcome by Uni Systems: Shaping Experiences
Welcome by Uni Systems: Shaping Experiences
Transcript: The partnership effect: Libraries and publishers on collaborating...
Transcript: The partnership effect: Libraries and publishers on collaborating...
CompTIA Cybersecurity Analyst (CySA+) CS0-003: Unit 2
CompTIA Cybersecurity Analyst (CySA+) CS0-003: Unit 2
Accessibility & Inclusion: What Comes Next. Presentation of the Digital Acces...
Accessibility & Inclusion: What Comes Next. Presentation of the Digital Acces...

Metasepi team meeting #14: ATS programming on MCU

  • 1.
    Metasepi team meeting #14: ATS programming on MCU Metasepi team meeting #14: ATS programming on MCU Metasepi team meeting #14: ATS programming on MCU Metasepi team meeting #14: ATS programming on MCU Metasepi team meeting #14: ATS programming on MCU Kiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi Project
  • 2.
    Who am I?Who am I?Who am I?Who am I?Who am I? ☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/☆ http://www.masterq.net/ ☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer☆ Self employed software engineer ☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN☆ Trade name := METASEPI DESIGN ☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project☆ Founder of Metasepi Project ☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD ☆ 10 years' experience in developing OS using NetBSD
  • 3.
    Demo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in HaskellDemo: NetBSD driver in Haskell ☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound☆ NetBSD audio driver play sound ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ The driver's interrupt handler rewrited using Haskell ☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following☆ Watch the movie at following https://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cAhttps://www.youtube.com/watch?v=XEYcR5RG5cA ☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014☆ Paper for Haskell Symposium 2014 http://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdfhttp://metasepi.org/doc/metasepi-icfp2014.pdf
  • 4.
    Ajhc Haskell compilerAjhc Haskell compilerAjhc Haskell compilerAjhc Haskell compilerAjhc Haskell compiler http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/http://ajhc.metasepi.org/ ☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc☆ Ajhc := Arafura designed jhc ☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler☆ jhc := John's Haskell Compiler ☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/☆ http://repetae.net/computer/jhc/ ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Jhc outputs binary that has low- memory-footprint and runs fast. ☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.☆ Good for embedded software.
  • 5.
    AgendaAgendaAgendaAgendaAgenda ☆ [1] What is Ajhc?☆ [1] What is Ajhc?☆ [1] What is Ajhc?☆ [1] What is Ajhc?☆ [1] What is Ajhc? ☆ [2] What is Metasepi?☆ [2] What is Metasepi?☆ [2] What is Metasepi?☆ [2] What is Metasepi?☆ [2] What is Metasepi? ☆ [3] Demo using ATS language☆ [3] Demo using ATS language☆ [3] Demo using ATS language☆ [3] Demo using ATS language☆ [3] Demo using ATS language ☆ [4] What is ATS?☆ [4] What is ATS?☆ [4] What is ATS?☆ [4] What is ATS?☆ [4] What is ATS? ☆ [5] ATS programming on MCU☆ [5] ATS programming on MCU☆ [5] ATS programming on MCU☆ [5] ATS programming on MCU☆ [5] ATS programming on MCU
  • 6.
    What is Metasepi?What is Metasepi?What is Metasepi?What is Metasepi?What is Metasepi? http://metasepi.org/http://metasepi.org/http://metasepi.org/http://metasepi.org/http://metasepi.org/ ☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type.☆ Unix-like OS designed by strong type. ☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.☆ Using ML or more strong type lang.
  • 7.
    Why need Metasepi?Why need Metasepi?Why need Metasepi?Why need Metasepi?Why need Metasepi? ☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows.☆ We have already Linux or Windows. ☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering.☆ But the developers are suffering. ☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you,☆ If use the kernel changed by you, ☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error.☆ you will get many runtime error. ☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.☆ Difficult even to reproduce it.
  • 8.
    Type safetyType safetyType safetyType safetyType safety ☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors.☆ Less runtime errors. ☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ"☆ "数理科学的バグ撲滅方法論のすすめ" http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248230/
  • 9.
    How create Metasepi?How create Metasepi?How create Metasepi?How create Metasepi?How create Metasepi?
  • 10.
    Snatch-driven developmentSnatch-driven developmentSnatch-driven developmentSnatch-driven developmentSnatch-driven development Dogfooding style.Dogfooding style.Dogfooding style.Dogfooding style.Dogfooding style.
  • 11.
    Demo: ATS on raw ArduinoDemo: ATS on raw ArduinoDemo: ATS on raw ArduinoDemo: ATS on raw ArduinoDemo: ATS on raw Arduino https://github.com/fpiot/arduino-mega2560-atshttps://github.com/fpiot/arduino-mega2560-atshttps://github.com/fpiot/arduino-mega2560-atshttps://github.com/fpiot/arduino-mega2560-atshttps://github.com/fpiot/arduino-mega2560-ats
  • 12.
    Demo: ATS on mbed platformDemo: ATS on mbed platformDemo: ATS on mbed platformDemo: ATS on mbed platformDemo: ATS on mbed platform https://github.com/fpiot/mbed-atshttps://github.com/fpiot/mbed-atshttps://github.com/fpiot/mbed-atshttps://github.com/fpiot/mbed-atshttps://github.com/fpiot/mbed-ats
  • 13.
    What is ATS language?What is ATS language?What is ATS language?What is ATS language?What is ATS language? http://www.ats-lang.org/http://www.ats-lang.org/http://www.ats-lang.org/http://www.ats-lang.org/http://www.ats-lang.org/ ☆ Syntax like ML☆ Syntax like ML☆ Syntax like ML☆ Syntax like ML☆ Syntax like ML ☆ Dependent types☆ Dependent types☆ Dependent types☆ Dependent types☆ Dependent types ☆ Linear types☆ Linear types☆ Linear types☆ Linear types☆ Linear types ☆ Without any runtime☆ Without any runtime☆ Without any runtime☆ Without any runtime☆ Without any runtime ☆ Optional GC☆ Optional GC☆ Optional GC☆ Optional GC☆ Optional GC
  • 14.
    ATS compile flowATS compile flowATS compile flowATS compile flowATS compile flow
  • 15.
    ATS programming on MCUATS programming on MCUATS programming on MCUATS programming on MCUATS programming on MCU You can choose the following 2-way.You can choose the following 2-way.You can choose the following 2-way.You can choose the following 2-way.You can choose the following 2-way. On BareMetal hardwareOn BareMetal hardwareOn BareMetal hardwareOn BareMetal hardwareOn BareMetal hardware ☆ Arduino (8-bit AVR)☆ Arduino (8-bit AVR)☆ Arduino (8-bit AVR)☆ Arduino (8-bit AVR)☆ Arduino (8-bit AVR) ☆ Cortex-M (32-bit ARM)☆ Cortex-M (32-bit ARM)☆ Cortex-M (32-bit ARM)☆ Cortex-M (32-bit ARM)☆ Cortex-M (32-bit ARM) On RTOSOn RTOSOn RTOSOn RTOSOn RTOS ☆ mbed☆ mbed☆ mbed☆ mbed☆ mbed ☆ ChibiOS/RT☆ ChibiOS/RT☆ ChibiOS/RT☆ ChibiOS/RT☆ ChibiOS/RT
  • 16.
    ATS on BareMetal hardwareATS on BareMetal hardwareATS on BareMetal hardwareATS on BareMetal hardwareATS on BareMetal hardware Read/write memory using pointer.Read/write memory using pointer.Read/write memory using pointer.Read/write memory using pointer.Read/write memory using pointer.
  • 17.
    ATS on RTOSATS on RTOSATS on RTOSATS on RTOSATS on RTOS Interaction with C.Interaction with C.Interaction with C.Interaction with C.Interaction with C.
  • 18.
    Produce/Consume Linear TypeProduce/Consume Linear TypeProduce/Consume Linear TypeProduce/Consume Linear TypeProduce/Consume Linear Type
  • 19.
  • 20.
    Japan ATS User GroupJapan ATS User GroupJapan ATS User GroupJapan ATS User GroupJapan ATS User Group http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/http://jats-ug.metasepi.org/ ☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/☆ In a parody of http://jaws-ug.jp/ ☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese☆ Translate ATS docs into Japanese ☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!☆ Push the Facebook like button, now!
  • 21.
    Many translated documentsMany translated documentsMany translated documentsMany translated documentsMany translated documents * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md * ATSプログラミング入門 http://jats-ug.metasepi.org/doc/ATS2/INT2PROGINATS/index.html * ATSプログラミングチュートリアル http://jats-ug.metasepi.org/doc/ATS2/ATS2TUTORIAL/index.html * Effective ATS https://github.com/jats-ug/translate/blob/master/Manual/ EffectiveATS.md * MLプログラマ向けATS言語ガイド https://github.com/jats-ug/translate/blob/master/Web/ cs.likai.org/ats/ml-programmers-guide-to-ats.md * 安全なプログラミング言語を使って heartbleed を防ぐには https://github.com/jats-ug/translate/blob/master/Web/ bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe- languages.md * 状態を持つ観 (view) を通じてポインタを扱う安全なプログラミング https://github.com/jats-ug/translate/blob/master/Paper/SPPSV- padl05/SPPSV-padl05.md
  • 22.
    Follow me!Follow me!Follow me!Follow me!Follow me! https://twitter.com/jats_ughttps://twitter.com/jats_ughttps://twitter.com/jats_ughttps://twitter.com/jats_ughttps://twitter.com/jats_ug

AltStyle によって変換されたページ (->オリジナル) /