2. Who am I?Who am I?Who am I?Who am I?Who am I?
☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/☆ http://masterq.metasepi-design.com/
☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe☆ Name: Kiwamu Okabe
☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion☆ Software engineer at Centillion
☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS☆ Part-time researcher at RIKEN AICS
☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN☆ Self-employed at METASEPI DESIGN
☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer☆ A Debian Maintainer
3. What's IoT?What's IoT?What's IoT?What's IoT?What's IoT?
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
The Internet of Things (or IoT for short) refers to
uniquely identifiable objects and their virtual
representations in an Internet-like structure.
Imagine IoT devices are:
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
connected to the internet / developed in a short
time / storing personal data / secure / more
intelligence / inexpensive.
C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?C language can easily design the IoT devices?
4. What's Functional IoT?What's Functional IoT?What's Functional IoT?What's Functional IoT?What's Functional IoT?
☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/☆ http://fpiot.metasepi.org/
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ is a wrestling mat that strongly typed languages
fight on, to become the champion of system
programming language.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ tries to write demo code running on tiny MCU
using the languages.
☆ summarizes knowledge of the languages as
catalog.
☆ summarizes knowledge of the languages as
catalog.
☆ summarizes knowledge of the languages as
catalog.
☆ summarizes knowledge of the languages as
catalog.
☆ summarizes knowledge of the languages as
catalog.
5. Why do Functional IoT?Why do Functional IoT?Why do Functional IoT?Why do Functional IoT?Why do Functional IoT?
☆ Today, we have many methodologies for system
design.
☆ Today, we have many methodologies for system
design.
☆ Today, we have many methodologies for system
design.
☆ Today, we have many methodologies for system
design.
☆ Today, we have many methodologies for system
design.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ For example, they are static typing, theorem
proving, formal method, design by contract, model
checking, static verification, SMT solver, etc.
☆ However, nobody have the exhaustive catalog of
them.
☆ However, nobody have the exhaustive catalog of
them.
☆ However, nobody have the exhaustive catalog of
them.
☆ However, nobody have the exhaustive catalog of
them.
☆ However, nobody have the exhaustive catalog of
them.
☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!☆ Let's make the catalog!
6. Why need such methodologies?Why need such methodologies?Why need such methodologies?Why need such methodologies?Why need such methodologies?
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
Many people choose C/C++ languages to design IoT
device. However the languages lack following:
☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability☆ Avoiding vulnerability
☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified☆ Specification to be verified
☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality☆ Keeping good quality
☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour☆ Getting less man-hour
☆ Fun☆ Fun☆ Fun☆ Fun☆ Fun
7. Avoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerabilityAvoiding vulnerability
Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors:Vulnerability is caused by following errors:
☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)☆ Array index out of range (Buffer overflow)
☆ Type range violation☆ Type range violation☆ Type range violation☆ Type range violation☆ Type range violation
☆ Division by zero☆ Division by zero☆ Division by zero☆ Division by zero☆ Division by zero
☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow☆ Numerical overflow
Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.Some methodologies can avoid these errors.
8. Specification to be verifiedSpecification to be verifiedSpecification to be verifiedSpecification to be verifiedSpecification to be verified
☆ Many people maintain specification as natural
language.
☆ Many people maintain specification as natural
language.
☆ Many people maintain specification as natural
language.
☆ Many people maintain specification as natural
language.
☆ Many people maintain specification as natural
language.
☆ Some methodologies can formally maintain
specification which is verified in computer.
☆ Some methodologies can formally maintain
specification which is verified in computer.
☆ Some methodologies can formally maintain
specification which is verified in computer.
☆ Some methodologies can formally maintain
specification which is verified in computer.
☆ Some methodologies can formally maintain
specification which is verified in computer.
9. Keeping good qualityKeeping good qualityKeeping good qualityKeeping good qualityKeeping good quality
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
☆ Original author can keep quality of the code,
however the other is hard to do it by lack of verify-
able specification. Sometimes, the original author
will become "the other" in future.
10. Getting less man-hourGetting less man-hourGetting less man-hourGetting less man-hourGetting less man-hour
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
☆ Easy to estimate compile time error, however
hard to do run time error, because finding latter
needs some testing.
11. FunFunFunFunFun
C language can't use following feature:C language can't use following feature:C language can't use following feature:C language can't use following feature:C language can't use following feature:
☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type☆ Algebraic data type
☆ Higher-order function☆ Higher-order function☆ Higher-order function☆ Higher-order function☆ Higher-order function
☆ Namespace☆ Namespace☆ Namespace☆ Namespace☆ Namespace
☆ Pattern matching☆ Pattern matching☆ Pattern matching☆ Pattern matching☆ Pattern matching
☆ Type inference☆ Type inference☆ Type inference☆ Type inference☆ Type inference
☆ Garbage collection☆ Garbage collection☆ Garbage collection☆ Garbage collection☆ Garbage collection
12. How to do Functional IoT?How to do Functional IoT?How to do Functional IoT?How to do Functional IoT?How to do Functional IoT?
☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.☆ Survey existing the methodologies as you like.
☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.☆ Write some demo code running on tiny MCU.
☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.☆ Monthly have meetup at Tokyo, Japan.
☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.☆ Share your knowledge and demo at the meetup.
☆ Update our exhaustive catalog of the
methodologies.
☆ Update our exhaustive catalog of the
methodologies.
☆ Update our exhaustive catalog of the
methodologies.
☆ Update our exhaustive catalog of the
methodologies.
☆ Update our exhaustive catalog of the
methodologies.
13. Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!Let's join the Functional IoT meetup!
https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/https://fpiot.doorkeeper.jp/