comparison 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
comparison
equal deleted inserted replaced
0:19155754a586 1:b135f074e78c
3 profile: 3 profile:
4 lang: Japanese 4 lang: Japanese
5 5
6 ## このセッションの内容 6 ## このセッションの内容
7 7
8 - 現在の主要なCコンパイラであるGCCとLLVM/Clangが実際にどのような処理をするかを追っていきます 8 - Perl6の主要な実装であるRakudoの内部構造を探ります
9 - コンパイラのトレースにはLLVMをバックエンドとして利用しているlldbを用います 9 - Rakudoの内部で利用されているVMや, Perl6のサブセットなどについて探索します
10 10
11 !SLIDE
12 ## Perl6とは
13 - 当初Perl5の時期バージョンとして開発されていたプログラミング言語
14 - 仕様と実装が分離しており, 現在はテストが仕様となっている
15 - 実装は複数存在しているが,現在主流な実装はRakudoとなっている
16 - 言語的にはスクリプト言語であり, 漸進的型付き言語となっている
17
18
19 !SLIDE
20 ## Perl6のソースコード概要
21
22 - Perl5の文法とは比較的変更が多い
23 - 変数がオブジェクトと化した事により, 変数からsayメソッドを呼ぶことが可能
24
25 ```
26 my $str_value = 'hello world!';
27 $str_value.say; # hello world!
28 ```
29
30 - Perl5と同様に,変数にはデフォルトでは型がないような振る舞いをする
31
32 ```
33 my $sample_value = 'hello world!';
34 $sample_value.say; # hello world!
35
36 $sample_value = '31';
37 $sample_value.say; # 31
38
39 say($sample_value * 3);
40 ```
41
42 !SLIDE
43 ## Perl6の言語的な特徴
44
45 - 漸進的型付き言語である為, 型を強制することも可能となる
46
47 ```
48 my Int $int_value = 31;
49 $int_value = "hello"; # Compile error!
50 ```
51
52 !SLIDE
53 ## Perl6の処理系の構成
54
55 - Perl6の処理系は現在はRakudoと呼ばれる