15
Start! ATS programming Start! ATS programming Start! ATS programming Start! ATS programming Start! ATS programming Kiwamu Okabe @ Metasepi Project Kiwamu Okabe @ Metasepi Project Kiwamu Okabe @ Metasepi Project Kiwamu Okabe @ Metasepi Project Kiwamu Okabe @ Metasepi Project

Start! ATS programming

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Start! ATS programming

Start! ATS programmingStart! ATS programmingStart! ATS programmingStart! ATS programmingStart! ATS programming

Kiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi ProjectKiwamu Okabe @ Metasepi Project

Page 2: Start! ATS programming

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

Page 3: Start! ATS programming

Remember Heartbleed bug?Remember Heartbleed bug?Remember Heartbleed bug?Remember Heartbleed bug?Remember Heartbleed bug?

Should we use safer language than C?Should we use safer language than C?Should we use safer language than C?Should we use safer language than C?Should we use safer language than C?== In English =="Preventing heartbleed bugs with safe programming languages"http://bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.html

== In Japanease =="安全なプログラミング言語を使って heartbleed を防ぐには"https://github.com/jats-ug/translate/blob/master/Web/bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.md

== In English =="Preventing heartbleed bugs with safe programming languages"http://bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.html

== In Japanease =="安全なプログラミング言語を使って heartbleed を防ぐには"https://github.com/jats-ug/translate/blob/master/Web/bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.md

== In English =="Preventing heartbleed bugs with safe programming languages"http://bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.html

== In Japanease =="安全なプログラミング言語を使って heartbleed を防ぐには"https://github.com/jats-ug/translate/blob/master/Web/bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.md

== In English =="Preventing heartbleed bugs with safe programming languages"http://bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.html

== In Japanease =="安全なプログラミング言語を使って heartbleed を防ぐには"https://github.com/jats-ug/translate/blob/master/Web/bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.md

== In English =="Preventing heartbleed bugs with safe programming languages"http://bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.html

== In Japanease =="安全なプログラミング言語を使って heartbleed を防ぐには"https://github.com/jats-ug/translate/blob/master/Web/bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.md

"A safer systems programming language could have prevented the bug.""A safer systems programming language could have prevented the bug.""A safer systems programming language could have prevented the bug.""A safer systems programming language could have prevented the bug.""A safer systems programming language could have prevented the bug."

Page 4: Start! ATS programming

Want the safer language...Want the safer language...Want the safer language...Want the safer language...Want the safer language...

It's the ATS http://www.ats-lang.org/ !It's the ATS http://www.ats-lang.org/ !It's the ATS http://www.ats-lang.org/ !It's the ATS http://www.ats-lang.org/ !It's the ATS 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

Page 5: Start! ATS programming

Demo on BareMetal ArduinoDemo on BareMetal ArduinoDemo on BareMetal ArduinoDemo on BareMetal ArduinoDemo on BareMetal Arduinohttps://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

Page 6: Start! ATS programming

Demo using RTOS threadsDemo using RTOS threadsDemo using RTOS threadsDemo using RTOS threadsDemo using RTOS threadshttps://github.com/fpiot/chibios-atshttps://github.com/fpiot/chibios-atshttps://github.com/fpiot/chibios-atshttps://github.com/fpiot/chibios-atshttps://github.com/fpiot/chibios-ats

Page 7: Start! ATS programming

Where ATS lives in?Where ATS lives in?Where ATS lives in?Where ATS lives in?Where ATS lives in?

Page 8: Start! ATS programming

Compile flowCompile flowCompile flowCompile flowCompile flow

Page 9: Start! ATS programming

BareMetal demo source code #1BareMetal demo source code #1BareMetal demo source code #1BareMetal demo source code #1BareMetal demo source code #1https://github.com/fpiot/arduino-mega2560-ats/blob/master/blink_ats/main.datshttps://github.com/fpiot/arduino-mega2560-ats/blob/master/blink_ats/main.datshttps://github.com/fpiot/arduino-mega2560-ats/blob/master/blink_ats/main.datshttps://github.com/fpiot/arduino-mega2560-ats/blob/master/blink_ats/main.datshttps://github.com/fpiot/arduino-mega2560-ats/blob/master/blink_ats/main.dats

Page 10: Start! ATS programming

BareMetal demo source code #2BareMetal demo source code #2BareMetal demo source code #2BareMetal demo source code #2BareMetal demo source code #2

Page 11: Start! ATS programming

Disseminate ATS to JapanDisseminate ATS to JapanDisseminate ATS to JapanDisseminate ATS to JapanDisseminate ATS to Japan

☆ Trying! Trying!☆ Trying! Trying!☆ Trying! Trying!☆ Trying! Trying!☆ Trying! Trying!

Page 12: Start! ATS programming

Try1: Japan ATS User GroupTry1: Japan ATS User GroupTry1: Japan ATS User GroupTry1: Japan ATS User GroupTry1: Japan 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!

Page 13: Start! ATS programming

Try2: Functional IoTTry2: Functional IoTTry2: Functional IoTTry2: Functional IoTTry2: Functional IoT

http://fpiot.metasepi.org/http://fpiot.metasepi.org/http://fpiot.metasepi.org/http://fpiot.metasepi.org/http://fpiot.metasepi.org/

☆ Wrestling mat languages fight on☆ Wrestling mat languages fight on☆ Wrestling mat languages fight on☆ Wrestling mat languages fight on☆ Wrestling mat languages fight on

☆ Functional programming on tiny chip☆ Functional programming on tiny chip☆ Functional programming on tiny chip☆ Functional programming on tiny chip☆ Functional programming on tiny chip

☆ Chip: AVR, MSP430, ARM Cortex-M☆ Chip: AVR, MSP430, ARM Cortex-M☆ Chip: AVR, MSP430, ARM Cortex-M☆ Chip: AVR, MSP430, ARM Cortex-M☆ Chip: AVR, MSP430, ARM Cortex-M

☆ Language: Ajhc, ATS, Rust☆ Language: Ajhc, ATS, Rust☆ Language: Ajhc, ATS, Rust☆ Language: Ajhc, ATS, Rust☆ Language: Ajhc, ATS, Rust

☆ Which language becomes the champion for system programming?☆ Which language becomes the champion for system programming?☆ Which language becomes the champion for system programming?☆ Which language becomes the champion for system programming?☆ Which language becomes the champion for system programming?

Page 14: Start! ATS programming

Follow me!Follow me!Follow me!Follow me!Follow me!

Page 15: Start! ATS programming

License of photos used on slideLicense of photos used on slideLicense of photos used on slideLicense of photos used on slideLicense of photos used on slide* Atmel AVR Butterfly (#4) | Flickr - Photo Sharing! https://www.flickr.com/photos/41894183508@N01/35437253/ Copyright: 2005 Bill Bradford / License: CC By 2.0* Dubai Wingsuit Flying Trip | Flickr - Photo Sharing! https://www.flickr.com/photos/picturecorrect/7623578306 Copyright: 2012 Richard Schneider / License: CC BY-NC 2.0* salve-a-terra--twitter_4251_1280x800 | Flickr - Photo Sharing! https://www.flickr.com/photos/daniloramosweb/3854330282 Copyright: 2005 Danilo Ramos / License: CC BY-SA 2.0* File:Heartbleed.svg - Wikimedia Commons http://commons.wikimedia.org/wiki/File:Heartbleed.svg Copyright: 2014 Leena Snidate, Codenomicon / License: CC0 1.0* Creative Commons BBB | Flickr - Photo Sharing! https://www.flickr.com/photos/steren/2732488224 Copyright: 2008 Steren Giannini / License: CC BY 2.0* Start Your Engines | Flickr - Photo Sharing! https://www.flickr.com/photos/markwalker/3749673425 Copyright: 2009 Mark Walker / License: CC BY-SA 2.0

* Atmel AVR Butterfly (#4) | Flickr - Photo Sharing! https://www.flickr.com/photos/41894183508@N01/35437253/ Copyright: 2005 Bill Bradford / License: CC By 2.0* Dubai Wingsuit Flying Trip | Flickr - Photo Sharing! https://www.flickr.com/photos/picturecorrect/7623578306 Copyright: 2012 Richard Schneider / License: CC BY-NC 2.0* salve-a-terra--twitter_4251_1280x800 | Flickr - Photo Sharing! https://www.flickr.com/photos/daniloramosweb/3854330282 Copyright: 2005 Danilo Ramos / License: CC BY-SA 2.0* File:Heartbleed.svg - Wikimedia Commons http://commons.wikimedia.org/wiki/File:Heartbleed.svg Copyright: 2014 Leena Snidate, Codenomicon / License: CC0 1.0* Creative Commons BBB | Flickr - Photo Sharing! https://www.flickr.com/photos/steren/2732488224 Copyright: 2008 Steren Giannini / License: CC BY 2.0* Start Your Engines | Flickr - Photo Sharing! https://www.flickr.com/photos/markwalker/3749673425 Copyright: 2009 Mark Walker / License: CC BY-SA 2.0

* Atmel AVR Butterfly (#4) | Flickr - Photo Sharing! https://www.flickr.com/photos/41894183508@N01/35437253/ Copyright: 2005 Bill Bradford / License: CC By 2.0* Dubai Wingsuit Flying Trip | Flickr - Photo Sharing! https://www.flickr.com/photos/picturecorrect/7623578306 Copyright: 2012 Richard Schneider / License: CC BY-NC 2.0* salve-a-terra--twitter_4251_1280x800 | Flickr - Photo Sharing! https://www.flickr.com/photos/daniloramosweb/3854330282 Copyright: 2005 Danilo Ramos / License: CC BY-SA 2.0* File:Heartbleed.svg - Wikimedia Commons http://commons.wikimedia.org/wiki/File:Heartbleed.svg Copyright: 2014 Leena Snidate, Codenomicon / License: CC0 1.0* Creative Commons BBB | Flickr - Photo Sharing! https://www.flickr.com/photos/steren/2732488224 Copyright: 2008 Steren Giannini / License: CC BY 2.0* Start Your Engines | Flickr - Photo Sharing! https://www.flickr.com/photos/markwalker/3749673425 Copyright: 2009 Mark Walker / License: CC BY-SA 2.0

* Atmel AVR Butterfly (#4) | Flickr - Photo Sharing! https://www.flickr.com/photos/41894183508@N01/35437253/ Copyright: 2005 Bill Bradford / License: CC By 2.0* Dubai Wingsuit Flying Trip | Flickr - Photo Sharing! https://www.flickr.com/photos/picturecorrect/7623578306 Copyright: 2012 Richard Schneider / License: CC BY-NC 2.0* salve-a-terra--twitter_4251_1280x800 | Flickr - Photo Sharing! https://www.flickr.com/photos/daniloramosweb/3854330282 Copyright: 2005 Danilo Ramos / License: CC BY-SA 2.0* File:Heartbleed.svg - Wikimedia Commons http://commons.wikimedia.org/wiki/File:Heartbleed.svg Copyright: 2014 Leena Snidate, Codenomicon / License: CC0 1.0* Creative Commons BBB | Flickr - Photo Sharing! https://www.flickr.com/photos/steren/2732488224 Copyright: 2008 Steren Giannini / License: CC BY 2.0* Start Your Engines | Flickr - Photo Sharing! https://www.flickr.com/photos/markwalker/3749673425 Copyright: 2009 Mark Walker / License: CC BY-SA 2.0

* Atmel AVR Butterfly (#4) | Flickr - Photo Sharing! https://www.flickr.com/photos/41894183508@N01/35437253/ Copyright: 2005 Bill Bradford / License: CC By 2.0* Dubai Wingsuit Flying Trip | Flickr - Photo Sharing! https://www.flickr.com/photos/picturecorrect/7623578306 Copyright: 2012 Richard Schneider / License: CC BY-NC 2.0* salve-a-terra--twitter_4251_1280x800 | Flickr - Photo Sharing! https://www.flickr.com/photos/daniloramosweb/3854330282 Copyright: 2005 Danilo Ramos / License: CC BY-SA 2.0* File:Heartbleed.svg - Wikimedia Commons http://commons.wikimedia.org/wiki/File:Heartbleed.svg Copyright: 2014 Leena Snidate, Codenomicon / License: CC0 1.0* Creative Commons BBB | Flickr - Photo Sharing! https://www.flickr.com/photos/steren/2732488224 Copyright: 2008 Steren Giannini / License: CC BY 2.0* Start Your Engines | Flickr - Photo Sharing! https://www.flickr.com/photos/markwalker/3749673425 Copyright: 2009 Mark Walker / License: CC BY-SA 2.0