1. 5세대 코딩 발전 방향
2015-1-18
김성진Ph.D 개설자
생활컴퓨팅
https://www.facebook.com/groups/lifecomp
Jamessungjin.kim@gmail.com
2. New Program Languages
Desktop
• Python-Numpy, MIT-Julia,
EPFL-Scala, Goolge-Go,
MS-C#/F#, Apple-Swift
Web
• Google-Dart, MS-
Typescript
• Facebook-Hack, Firefox-
Rust
Many 4.5G-level PLs are presenting for Multicores/GPU/Big-data
2
Jamessungjin.kim@gmail.com
배경
3. ECMA Standards
ECMA-262 (Javascript)
• Standard status
– Ver 5.1: Accepted &
aligned with ISO/IEC
– Ver 6: “ES6 Harmony”,
Python-style generators
– Ver 7: Early stage, themes
of language reform
ECMA-334 (C#)
• Developed by MS, ‘02
– ECMA(Dec’02), ISO(Apr’03)
• Development status
– C#2.0: accepted (Jun’06)
– C#5.0: (not yet ECMA),
Compiler-as-a-service
– C#6.0: Future(Str interpol)
3
Jamessungjin.kim@gmail.com
배경
4. Programming Language War
1GL 2GL 3GL 4GL
Machine code Assembler High-level DB query
3.1 3.2 3.3 3.4 3.5
Basic C/C++/Java Python Cython ?
Interpret Compile
Binary
Transform
Selective
Compile
Abstract
3.1 3.2 3.3 3.4 3.5
HTML C-CGI Java-script Coffee-script ?
Mark-up Compile
Fast
Script
Trans-pile Abstract
Desktop
Web
5GPL
4
Jamessungjin.kim@gmail.com
동향
5. Trend: 2GPL - C
Realism
Attempt to represent subject
matter truthfully
The Meeting ("Bonjour, Monsieur Courbet"), 1854
Hello.c
5
Jamessungjin.kim@gmail.com
동향
6. Trend: 3GPL - Python
Impressionism
Crucial element of human
perception and experience
Claude Monet, Impression, soleil
levant (Impression, Sunrise), 1872, oil on canvas
print( “hello, world”)
Hello.py
6
Jamessungjin.kim@gmail.com
동향
7. Trend: 4GPL - Cython
Expressionism
Sought to express meaning or
emotional experience
The Scream by Edvard Munch (1893)
print( “hello, world”)
Hello.pyx
7
Jamessungjin.kim@gmail.com
동향
8. Example: Cython Usage
• Python/Cython can be used for multi-scale simulations
– Physics writes modeling codes using Python much easier than
using C/C++ (~5 times easier)
– Simulation speed can be boosted by Cython compiling
8
Jamessungjin.kim@gmail.com
동향
9. 5G Program Language - Concept
Wassily Kandinsky, On White II, 1923
Jackson Pollock, No. 5, 1948
Fautrier Jean (1898~1964) [LISP]
- 1958, John McCarthy
- Pure functional
[OFDM]
- 1957: Kineplex
- Pure multi-carrier
Hints
9
Jamessungjin.kim@gmail.com
예측
10. 5G Program Language - Hints
Computing
• LISP (Functional, ’58)
• OOP such as C++/Java
• Backing to LISP style
such as Julia (MIT)
– Care Multicore/Clusters
Communications
• OFDM (HF model, ‘57)
• SC/CDMA
• Back to pure OFDM
in LTE
– Multi-user enhanced
Python functional parallel code
Data = [d1, d2, d3]
print pool.map(func, Data)
10
Jamessungjin.kim@gmail.com
예측
Similarity between histories of computing and communication technology
11. 5GPL Candidates – 1. Hybrid Coding
• Both script and compiler modes are
supported on the same language
11
Julia for
Computational coding
Scala for
Web coding
Go for
System coding
예측
12. 5GPL Candidates – 2. Visual Coding
12
Jamessungjin.kim@gmail.com
예측
Coding offers both visual and text programming interfaces
13. 5GPL Candidates – 3. H/W Coding
13
Coding can be used for both software and hardware platforms
예측
14. 5GPL Proposal – 우리글 코딩 글로리
14
Jamessungjin.kim@gmail.com
제안
영어 베이직
한국어 중국어
스페인
어
Python
Java &
C/C++
Java-
script
Concept of Glory
16. Summary
• New Languages are coming
– Go, Swift, Scala, Julia, Hack …
• 5G coding candidates may consist of
– Multiple language coding
– Visual coding
– Hardware coding
• Proposal: 우리글 코딩 글로리 (생활컴퓨팅)
– 다중 언어 코딩을 지원하며 상호 번역
– 다중 프로그래밍 언어를 지원하며 상호 번역
16
Jamessungjin.kim@gmail.com