SlideShare una empresa de Scribd logo
1 de 9
プログラミング言語の比較1
  表. 代表的な手続き型・オブジェクト指向プログラミング言語
     (*) C言語は関数ポインタを引数や戻り値として渡せる
言語                手続き型(P)    静的(S) /          クラス   引数の      戻り値      クロー
                  / 宣言型(D)   動的(D)型付け         と継承   関数       の関数      ジャー
Pascal            P          S                No    No       Yes      No
COBOL85           P          S                No    No       No       No
Fortan90          P          S                No    Yes      Yes      No
C99               P          S                No    Yes(*)   Yes(*)   No
C++11             P          S                Yes   Yes      Yes      Yes
C# 4.0            P          S                Yes   Yes      Yes      Yes
D 2.0             P          S                Yes   Yes      Yes      Yes
Objective-C 2.0   P          S                Yes   Yes      Yes      Yes
Java 7            P          S                Yes   No       No       No

      2012/12/3                  博士論文 予備公聴会                            1
プログラミング言語の比較2
                表. 代表的なスクリプト言語
(*) JavaScriptはプロトタイプを用いてクラスや継承を表現可能
言語             手続き型(P)    静的(S) /      クラス      引数の   戻り値   クロー
               / 宣言型(D)   動的(D)型付け     と継承      関数    の関数   ジャー
JavaScript     P          D            Yes(*)   Yes   Yes   Yes
CoffeeScript   P          D            Yes      Yes   Yes   Yes
TypeScript     P          S            Yes      Yes   Yes   Yes
Perl           P          D            Yes      Yes   Yes   Yes
PHP 5.3        P          D            Yes      Yes   Yes   Yes
Python         P          D            Yes      Yes   Yes   Yes
Ruby           P          D            Yes      Yes   Yes   Yes
Lua            P          D            No       Yes   Yes   Yes
Groovy         P          D            Yes      Yes   Yes   Yes

 2012/12/3                    博士論文 予備公聴会                          2
プログラミング言語の比較3
            表. 代表的な関数型・宣言型プログラミング言語
言語           手続き型(P)    静的(S) /     クラス   引数の   戻り値   クロー
             / 宣言型(D)   動的(D)型付け    と継承   関数    の関数   ジャー
Lisp         P          D           No    Yes   Yes   Yes
Scheme       P          D           No    Yes   Yes   Yes
ML           P          S           No    Yes   Yes   Yes
Scala        P          S           Yes   Yes   Yes   Yes
Kotlin       P          S           Yes   Yes   Yes   Yes
Nemerle      P          S           Yes   Yes   Yes   Yes
Haskell      D          S           No    Yes   Yes   Yes
SQL          D          S           No    No    No    No
Prolog       D          D           No    No    No    No


2012/12/3                   博士論文 予備公聴会                      3
他言語と連携可能な言語一覧1
 The Next Big
JVM Language         表. JVM上で動作する言語
          (*) Google Web Toolkitを用いて部分的にJavaScriptへ変換可能
          言語         JVM     .NET Framework   JavaScript   互換性の
                     上で動作    上で動作             への変換         高い言語
          Java       Yes     No               Yes(*)
          Scala      Yes     Yes              No
          Kotlin     Yes     Planned          Yes
          Xtend      Yes     No               No
          Ceylon     Yes     No               Yes
          Fantom     Yes     Yes              Yes
          Gosu       Yes     No               No
          Clojure    Yes     No               No           Lisp
          Jython     Yes     No               No           Python
          JRuby      Yes     No               No           Ruby

   2012/12/3                博士論文 予備公聴会                            4
他言語と連携可能な言語一覧2
               表. .NET Framework上で動作する言語
             (*) JSILやSharpKitを用いて部分的にJavaScriptへ変換可能
言語                  JVM      .NET Framework JavaScript 互換性の
                    上で動作 上で動作               への変換       高い言語
C#               No      Yes                Yes(*)
F#               No      Yes                No
Visual Basic     No      Yes                No
C++/CLI          No      Yes                No
Nemerle          No      Yes                Yes
IronPython       No      Yes                No       Python
IronRuby         No      Yes                No       Ruby
IronScheme       No      Yes                No       Scheme
プロデル             No      Yes                No
クロガネ             No      Yes                No

2012/12/3                      博士論文 予備公聴会                     5
他言語と連携可能な言語一覧3
                  表. JavaScriptに変換可能な言語
               *) HaxeはC++, PHP, C#など様々な言語へ変換可能
言語               JVM    .NET Framework     JavaScript   互換性の
                 上で動作   上で動作               への変換         高い言語
CoffeeScript     No     No                 Yes
TypeScript       No     No                 Yes
Dart             No     No                 Yes
Haxe(*)          Yes    Yes                Yes          ActionScript
JSX              No     No                 Yes


万が一間違いがあったら @exKAZUu
までご一報下さい m(__)m
 2012/12/3                    博士論文 予備公聴会                               6
テストカバレッジ測定ツールの比較
ツール            測定の         階層的   無償    命令     分岐    条件    分岐条件   対応言語
               仕組み         表示          網羅     網羅    網羅    網羅
Cobertura      Binary      Yes   Yes   Yes    Yes   No    No     Java
EMMA           Binary      Yes   Yes   Yes    Yes   No    No     Java
                                                                 Java,
JCover         Code        Yes   No    Yes    Yes   No    No
                                                                 Groovy
Clover         Code        Yes   No    Yes    Yes   No    No     Java
Agitar         Binary      Yes   No    Yes    Yes   No    No     Java
OpenCover      Processor   Yes   Yes   Yes    Yes   No    No     C#
NCover         Source      Yes   No    Yes    Yes   No    No     C#
dotCover       Binary      Yes   No    Yes    No    No    No     C#
gcov           Compiler    No    Yes   Yes    Yes   No    No     C++
COVTOOL        Code        No    Yes   Yes    No    No    No     C++
Bullseye       Code        Yes   No    Yes    Yes   Yes   Yes    C++

   2012/12/3                     博士論文 予備公聴会                             7
テストカバレッジ測定ツールの比較
ツール             測定の        階層的     無償   命令    分岐    条件    分岐    対応言語
                仕組み        表示           網羅    網羅    網羅    条件
                                                          網羅
Intel Code
                Compiler   Yes     No   Yes   No    No    No    Java
Coverage Tool
Squish Coco     Code       Yes     No   Yes   Yes   Yes   Yes   Java
                                                                C++,
TCAT            Code       Yes     No   No    Yes   No    No
                                                                Java
                                                                C++, C#
Parasoft Test   Code       Yes     No   Yes   Yes   Yes   Yes
                                                                Java
                                                                C++, C#
PurifyPlus      Binary     Yes     No   Yes   Yes   Yes   Yes
                                                                Java
Semantic                                                        C++, C#
                Code       Yes     No   Yes   Yes   No    No
Designs                                                         Java など
Coverage                                                        C++, C#
                Code       Yes     No   Yes   Yes   No    No
Validator                                                       Java など
   2012/12/3                     博士論文 予備公聴会                            8
テストカバレッジ測定ツールの比較
ツール                   測定の             階層的         無償      命令       分岐       条件      分岐       対応言語
                      仕組み             表示                  網羅       網羅       網羅      条件
                                                                                    網羅
ScriptCover           Code            No          Yes     Yes      No       No      No       JavaScript
Coverage.py           Processor       No          Yes     Yes      Yes      No      No       Python
rcov                  Processor       Yes         Yes     Yes      No       No      No       Ruby
SimpleCov             Processor       Yes         Yes     Yes      No       No      No       Ruby
Devel::Cover          Processor       Yes         Yes     Yes      Yes      Yes     No       Perl
xdebug                Code            Yes         Yes     Yes      No       No      No       PHP
LuaCov                Processor       No          Yes     Yes      No       No      No       Lua

     • ツール間に測定基準・対応言語の差異
     • メトリクス測定では測定基準の差異が問題に(*)
*) Rüdiger Lincke, Jonas Lundberg and Welf Löwe: “Comparing Software Metrics Tools,” ISSTA '08 Proceedings
of the 2008 international symposium on Software testing and analysis, pp. 131-142, 2008.

     2012/12/3                               博士論文 予備公聴会                                              9

Más contenido relacionado

La actualidad más candente

LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) Hironobu Isoda
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうRyuji Tsutsui
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
Pythonとパッケージングと私
Pythonとパッケージングと私Pythonとパッケージングと私
Pythonとパッケージングと私Atsushi Odagiri
 
アップルの特許に見るUI特許のポイント
アップルの特許に見るUI特許のポイントアップルの特許に見るUI特許のポイント
アップルの特許に見るUI特許のポイントkurikiyo
 
テスト自動化のパターンと実践
テスト自動化のパターンと実践テスト自動化のパターンと実践
テスト自動化のパターンと実践Hiroshi Maekawa
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴Takuto Wada
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersSeiya Mizuno
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送Google Cloud Platform - Japan
 
劇的改善 CI 4時間から5分へ〜私がやった10のこと〜
劇的改善 CI 4時間から5分へ〜私がやった10のこと〜劇的改善 CI 4時間から5分へ〜私がやった10のこと〜
劇的改善 CI 4時間から5分へ〜私がやった10のこと〜Recruit Lifestyle Co., Ltd.
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Hiro H.
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService PrincipalToru Makabe
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
 

La actualidad más candente (20)

LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
Pythonとパッケージングと私
Pythonとパッケージングと私Pythonとパッケージングと私
Pythonとパッケージングと私
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
アップルの特許に見るUI特許のポイント
アップルの特許に見るUI特許のポイントアップルの特許に見るUI特許のポイント
アップルの特許に見るUI特許のポイント
 
テスト自動化のパターンと実践
テスト自動化のパターンと実践テスト自動化のパターンと実践
テスト自動化のパターンと実践
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
 
劇的改善 CI 4時間から5分へ〜私がやった10のこと〜
劇的改善 CI 4時間から5分へ〜私がやった10のこと〜劇的改善 CI 4時間から5分へ〜私がやった10のこと〜
劇的改善 CI 4時間から5分へ〜私がやった10のこと〜
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 

Similar a プログラミング言語の比較表

Scala Performance Tuning Tips
Scala Performance Tuning TipsScala Performance Tuning Tips
Scala Performance Tuning TipsKota Mizushima
 
Cプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧めCプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧めMITSUNARI Shigeo
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)parrotstudio
 
Rのコードをキレイに見せたい
Rのコードをキレイに見せたいRのコードをキレイに見せたい
Rのコードをキレイに見せたいmangantempy
 
プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介baban ba-n
 
普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話ko ty
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化maruyama097
 
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?kwatch
 
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話Kentarou Takeda
 
From Java To Clojure
From Java To ClojureFrom Java To Clojure
From Java To ClojureKent Ohashi
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語RShuyo Nakatani
 
Phperがgoをさわってみた
PhperがgoをさわってみたPhperがgoをさわってみた
Phperがgoをさわってみたyasuo424
 
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)taskie
 
第一回社内 Scala 勉強会(一部抜粋)その 2
第一回社内 Scala 勉強会(一部抜粋)その 2第一回社内 Scala 勉強会(一部抜粋)その 2
第一回社内 Scala 勉強会(一部抜粋)その 2lyrical_logical
 
第一回社内 Scala 勉強会(一部抜粋)
第一回社内 Scala 勉強会(一部抜粋)第一回社内 Scala 勉強会(一部抜粋)
第一回社内 Scala 勉強会(一部抜粋)lyrical_logical
 
初心者向けGo言語勉強会
初心者向けGo言語勉強会初心者向けGo言語勉強会
初心者向けGo言語勉強会leverages_event
 
Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流Kazuhiko Kato
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるKoichi Sakata
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうKoichi Sakata
 

Similar a プログラミング言語の比較表 (20)

Scala Performance Tuning Tips
Scala Performance Tuning TipsScala Performance Tuning Tips
Scala Performance Tuning Tips
 
Cプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧めCプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧め
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
Rのコードをキレイに見せたい
Rのコードをキレイに見せたいRのコードをキレイに見せたい
Rのコードをキレイに見せたい
 
プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介プログラミング言語Cyanの紹介
プログラミング言語Cyanの紹介
 
普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化
 
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?
 
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
 
From Java To Clojure
From Java To ClojureFrom Java To Clojure
From Java To Clojure
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語R
 
Phperがgoをさわってみた
PhperがgoをさわってみたPhperがgoをさわってみた
Phperがgoをさわってみた
 
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
 
第一回社内 Scala 勉強会(一部抜粋)その 2
第一回社内 Scala 勉強会(一部抜粋)その 2第一回社内 Scala 勉強会(一部抜粋)その 2
第一回社内 Scala 勉強会(一部抜粋)その 2
 
第一回社内 Scala 勉強会(一部抜粋)
第一回社内 Scala 勉強会(一部抜粋)第一回社内 Scala 勉強会(一部抜粋)
第一回社内 Scala 勉強会(一部抜粋)
 
初心者向けGo言語勉強会
初心者向けGo言語勉強会初心者向けGo言語勉強会
初心者向けGo言語勉強会
 
Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流Rubyとプログラミング言語の潮流
Rubyとプログラミング言語の潮流
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
 

Más de Kazunori Sakamoto

AI Challenge @ CODE FESTIVAL 2018 Final Round
AI Challenge @ CODE FESTIVAL 2018 Final RoundAI Challenge @ CODE FESTIVAL 2018 Final Round
AI Challenge @ CODE FESTIVAL 2018 Final RoundKazunori Sakamoto
 
A.I. Challenge @ CODE FESTIVAL 2014 決勝戦
A.I. Challenge @ CODE FESTIVAL 2014 決勝戦A.I. Challenge @ CODE FESTIVAL 2014 決勝戦
A.I. Challenge @ CODE FESTIVAL 2014 決勝戦Kazunori Sakamoto
 
ハッカソン形式の実践的IT教育の実施報告
ハッカソン形式の実践的IT教育の実施報告ハッカソン形式の実践的IT教育の実施報告
ハッカソン形式の実践的IT教育の実施報告Kazunori Sakamoto
 
ACM-ICPC JavaChallenge 2014 Result
ACM-ICPC JavaChallenge 2014 ResultACM-ICPC JavaChallenge 2014 Result
ACM-ICPC JavaChallenge 2014 ResultKazunori Sakamoto
 
ICSE2014参加報告 (SE勉強会 6/12)
ICSE2014参加報告 (SE勉強会 6/12)ICSE2014参加報告 (SE勉強会 6/12)
ICSE2014参加報告 (SE勉強会 6/12)Kazunori Sakamoto
 
CEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDEC
CEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDECCEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDEC
CEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDECKazunori Sakamoto
 
POGen: A Test Code Generator Based on Template Variable Coverage in Gray-Box ...
POGen: A Test Code Generator Based on Template Variable Coverage in Gray-Box ...POGen: A Test Code Generator Based on Template Variable Coverage in Gray-Box ...
POGen: A Test Code Generator Based on Template Variable Coverage in Gray-Box ...Kazunori Sakamoto
 
OCCF: A Framework for Developing Test Coverage Measurement Tools Supporting M...
OCCF: A Framework for Developing Test Coverage Measurement Tools Supporting M...OCCF: A Framework for Developing Test Coverage Measurement Tools Supporting M...
OCCF: A Framework for Developing Test Coverage Measurement Tools Supporting M...Kazunori Sakamoto
 
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案Kazunori Sakamoto
 
JavaChallenge 2012 Special League
JavaChallenge 2012 Special LeagueJavaChallenge 2012 Special League
JavaChallenge 2012 Special LeagueKazunori Sakamoto
 
ガイオプライベートセミナー2012秋(坂本)
ガイオプライベートセミナー2012秋(坂本)ガイオプライベートセミナー2012秋(坂本)
ガイオプライベートセミナー2012秋(坂本)Kazunori Sakamoto
 

Más de Kazunori Sakamoto (12)

AI Challenge @ CODE FESTIVAL 2018 Final Round
AI Challenge @ CODE FESTIVAL 2018 Final RoundAI Challenge @ CODE FESTIVAL 2018 Final Round
AI Challenge @ CODE FESTIVAL 2018 Final Round
 
A.I. Challenge @ CODE FESTIVAL 2014 決勝戦
A.I. Challenge @ CODE FESTIVAL 2014 決勝戦A.I. Challenge @ CODE FESTIVAL 2014 決勝戦
A.I. Challenge @ CODE FESTIVAL 2014 決勝戦
 
ハッカソン形式の実践的IT教育の実施報告
ハッカソン形式の実践的IT教育の実施報告ハッカソン形式の実践的IT教育の実施報告
ハッカソン形式の実践的IT教育の実施報告
 
ACM-ICPC JavaChallenge 2014 Result
ACM-ICPC JavaChallenge 2014 ResultACM-ICPC JavaChallenge 2014 Result
ACM-ICPC JavaChallenge 2014 Result
 
ICSE2014参加報告 (SE勉強会 6/12)
ICSE2014参加報告 (SE勉強会 6/12)ICSE2014参加報告 (SE勉強会 6/12)
ICSE2014参加報告 (SE勉強会 6/12)
 
CEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDEC
CEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDECCEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDEC
CEDEC CHALLENGE ゲームAI プログラミングコンテスト 2013 in CEDEC
 
POGen: A Test Code Generator Based on Template Variable Coverage in Gray-Box ...
POGen: A Test Code Generator Based on Template Variable Coverage in Gray-Box ...POGen: A Test Code Generator Based on Template Variable Coverage in Gray-Box ...
POGen: A Test Code Generator Based on Template Variable Coverage in Gray-Box ...
 
OCCF: A Framework for Developing Test Coverage Measurement Tools Supporting M...
OCCF: A Framework for Developing Test Coverage Measurement Tools Supporting M...OCCF: A Framework for Developing Test Coverage Measurement Tools Supporting M...
OCCF: A Framework for Developing Test Coverage Measurement Tools Supporting M...
 
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
 
JavaChallenge 2012 Special League
JavaChallenge 2012 Special LeagueJavaChallenge 2012 Special League
JavaChallenge 2012 Special League
 
JavaChallenge 2012 Result
JavaChallenge 2012 ResultJavaChallenge 2012 Result
JavaChallenge 2012 Result
 
ガイオプライベートセミナー2012秋(坂本)
ガイオプライベートセミナー2012秋(坂本)ガイオプライベートセミナー2012秋(坂本)
ガイオプライベートセミナー2012秋(坂本)
 

Último

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Último (9)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

プログラミング言語の比較表

  • 1. プログラミング言語の比較1 表. 代表的な手続き型・オブジェクト指向プログラミング言語 (*) C言語は関数ポインタを引数や戻り値として渡せる 言語 手続き型(P) 静的(S) / クラス 引数の 戻り値 クロー / 宣言型(D) 動的(D)型付け と継承 関数 の関数 ジャー Pascal P S No No Yes No COBOL85 P S No No No No Fortan90 P S No Yes Yes No C99 P S No Yes(*) Yes(*) No C++11 P S Yes Yes Yes Yes C# 4.0 P S Yes Yes Yes Yes D 2.0 P S Yes Yes Yes Yes Objective-C 2.0 P S Yes Yes Yes Yes Java 7 P S Yes No No No 2012/12/3 博士論文 予備公聴会 1
  • 2. プログラミング言語の比較2 表. 代表的なスクリプト言語 (*) JavaScriptはプロトタイプを用いてクラスや継承を表現可能 言語 手続き型(P) 静的(S) / クラス 引数の 戻り値 クロー / 宣言型(D) 動的(D)型付け と継承 関数 の関数 ジャー JavaScript P D Yes(*) Yes Yes Yes CoffeeScript P D Yes Yes Yes Yes TypeScript P S Yes Yes Yes Yes Perl P D Yes Yes Yes Yes PHP 5.3 P D Yes Yes Yes Yes Python P D Yes Yes Yes Yes Ruby P D Yes Yes Yes Yes Lua P D No Yes Yes Yes Groovy P D Yes Yes Yes Yes 2012/12/3 博士論文 予備公聴会 2
  • 3. プログラミング言語の比較3 表. 代表的な関数型・宣言型プログラミング言語 言語 手続き型(P) 静的(S) / クラス 引数の 戻り値 クロー / 宣言型(D) 動的(D)型付け と継承 関数 の関数 ジャー Lisp P D No Yes Yes Yes Scheme P D No Yes Yes Yes ML P S No Yes Yes Yes Scala P S Yes Yes Yes Yes Kotlin P S Yes Yes Yes Yes Nemerle P S Yes Yes Yes Yes Haskell D S No Yes Yes Yes SQL D S No No No No Prolog D D No No No No 2012/12/3 博士論文 予備公聴会 3
  • 4. 他言語と連携可能な言語一覧1 The Next Big JVM Language 表. JVM上で動作する言語 (*) Google Web Toolkitを用いて部分的にJavaScriptへ変換可能 言語 JVM .NET Framework JavaScript 互換性の 上で動作 上で動作 への変換 高い言語 Java Yes No Yes(*) Scala Yes Yes No Kotlin Yes Planned Yes Xtend Yes No No Ceylon Yes No Yes Fantom Yes Yes Yes Gosu Yes No No Clojure Yes No No Lisp Jython Yes No No Python JRuby Yes No No Ruby 2012/12/3 博士論文 予備公聴会 4
  • 5. 他言語と連携可能な言語一覧2 表. .NET Framework上で動作する言語 (*) JSILやSharpKitを用いて部分的にJavaScriptへ変換可能 言語 JVM .NET Framework JavaScript 互換性の 上で動作 上で動作 への変換 高い言語 C# No Yes Yes(*) F# No Yes No Visual Basic No Yes No C++/CLI No Yes No Nemerle No Yes Yes IronPython No Yes No Python IronRuby No Yes No Ruby IronScheme No Yes No Scheme プロデル No Yes No クロガネ No Yes No 2012/12/3 博士論文 予備公聴会 5
  • 6. 他言語と連携可能な言語一覧3 表. JavaScriptに変換可能な言語 *) HaxeはC++, PHP, C#など様々な言語へ変換可能 言語 JVM .NET Framework JavaScript 互換性の 上で動作 上で動作 への変換 高い言語 CoffeeScript No No Yes TypeScript No No Yes Dart No No Yes Haxe(*) Yes Yes Yes ActionScript JSX No No Yes 万が一間違いがあったら @exKAZUu までご一報下さい m(__)m 2012/12/3 博士論文 予備公聴会 6
  • 7. テストカバレッジ測定ツールの比較 ツール 測定の 階層的 無償 命令 分岐 条件 分岐条件 対応言語 仕組み 表示 網羅 網羅 網羅 網羅 Cobertura Binary Yes Yes Yes Yes No No Java EMMA Binary Yes Yes Yes Yes No No Java Java, JCover Code Yes No Yes Yes No No Groovy Clover Code Yes No Yes Yes No No Java Agitar Binary Yes No Yes Yes No No Java OpenCover Processor Yes Yes Yes Yes No No C# NCover Source Yes No Yes Yes No No C# dotCover Binary Yes No Yes No No No C# gcov Compiler No Yes Yes Yes No No C++ COVTOOL Code No Yes Yes No No No C++ Bullseye Code Yes No Yes Yes Yes Yes C++ 2012/12/3 博士論文 予備公聴会 7
  • 8. テストカバレッジ測定ツールの比較 ツール 測定の 階層的 無償 命令 分岐 条件 分岐 対応言語 仕組み 表示 網羅 網羅 網羅 条件 網羅 Intel Code Compiler Yes No Yes No No No Java Coverage Tool Squish Coco Code Yes No Yes Yes Yes Yes Java C++, TCAT Code Yes No No Yes No No Java C++, C# Parasoft Test Code Yes No Yes Yes Yes Yes Java C++, C# PurifyPlus Binary Yes No Yes Yes Yes Yes Java Semantic C++, C# Code Yes No Yes Yes No No Designs Java など Coverage C++, C# Code Yes No Yes Yes No No Validator Java など 2012/12/3 博士論文 予備公聴会 8
  • 9. テストカバレッジ測定ツールの比較 ツール 測定の 階層的 無償 命令 分岐 条件 分岐 対応言語 仕組み 表示 網羅 網羅 網羅 条件 網羅 ScriptCover Code No Yes Yes No No No JavaScript Coverage.py Processor No Yes Yes Yes No No Python rcov Processor Yes Yes Yes No No No Ruby SimpleCov Processor Yes Yes Yes No No No Ruby Devel::Cover Processor Yes Yes Yes Yes Yes No Perl xdebug Code Yes Yes Yes No No No PHP LuaCov Processor No Yes Yes No No No Lua • ツール間に測定基準・対応言語の差異 • メトリクス測定では測定基準の差異が問題に(*) *) Rüdiger Lincke, Jonas Lundberg and Welf Löwe: “Comparing Software Metrics Tools,” ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis, pp. 131-142, 2008. 2012/12/3 博士論文 予備公聴会 9