diff slide.md @ 1:b135f074e78c

update
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Mon, 15 Apr 2019 17:59:44 +0900
parents 19155754a586
children 41f44d102cf9
line wrap: on
line diff
--- a/slide.md	Sat Apr 06 17:28:17 2019 +0900
+++ b/slide.md	Mon Apr 15 17:59:44 2019 +0900
@@ -5,6 +5,51 @@
 
 ## このセッションの内容
 
-- 現在の主要なCコンパイラであるGCCとLLVM/Clangが実際にどのような処理をするかを追っていきます
-- コンパイラのトレースにはLLVMをバックエンドとして利用しているlldbを用います
+- Perl6の主要な実装であるRakudoの内部構造を探ります
+- Rakudoの内部で利用されているVMや, Perl6のサブセットなどについて探索します
+
+!SLIDE
+## Perl6とは
+- 当初Perl5の時期バージョンとして開発されていたプログラミング言語
+- 仕様と実装が分離しており, 現在はテストが仕様となっている
+- 実装は複数存在しているが,現在主流な実装はRakudoとなっている
+- 言語的にはスクリプト言語であり, 漸進的型付き言語となっている
+
+
+!SLIDE
+## Perl6のソースコード概要
+
+- Perl5の文法とは比較的変更が多い
+- 変数がオブジェクトと化した事により, 変数からsayメソッドを呼ぶことが可能
+
+```
+my $str_value = 'hello world!';
+$str_value.say; # hello world!
+```
+
+- Perl5と同様に,変数にはデフォルトでは型がないような振る舞いをする
 
+```
+my $sample_value = 'hello world!';
+$sample_value.say; # hello world!
+
+$sample_value = '31';
+$sample_value.say; # 31
+
+say($sample_value * 3);
+```
+
+!SLIDE
+## Perl6の言語的な特徴
+
+- 漸進的型付き言語である為, 型を強制することも可能となる
+
+```
+my Int $int_value  = 31;
+$int_value = "hello"; # Compile error!
+```
+
+!SLIDE
+## Perl6の処理系の構成
+
+- Perl6の処理系は現在はRakudoと呼ばれる