Veha Suwatphisankij
!@#@$^&%&
JavaScript Interactive Development Environment
ระบบโต้ตอบทันที
เพื่อการพัฒนาโปรแกรมภาษาจาวาสคริปต์
นายเวหา สุวัฒน์พิศาลกิจ
5530537521
อาจารย์ที่ปรึกษา
รศ. ดร. สมชาย ประสิทธิ์จูตระกูล
problem
coding is complicated.
development cycle takes so long
developer spend 50-80% of their time
read source code
bug code almost come before bug
software development timeline
Punch card
Compiler
Interpreter
Interactive
Programming
JSIDE
จุดประสงค์
เพื่อพัฒนาเครื่องมือที่ช่วยให้การพัฒนาโปรแกรมภาษาจาวาสคริปต์เป็นไปได้อย่าง
ในระหว่างที่พัฒนาโปรแกรมได้ทันที
javascript
event driven programming
node.js
babel
codeMirror
babel : source to source compiler
source
compiler
parser
Token
Syntactic Analysis
AST
code generation
Machine code
lexical analysis
Transformation
AST
babel : source to source compiler
parser
Token
Syntactic Analysis
AST
code generation
source code
lexical analysis
Transformation
AST
source to source compiler
source
Transformation
: Babel plugin
: Babel plugin
a.b = 10+10 //->
a.b = 10+10 //->
Augmented code
a= 10;
___jside.push({
name: 'a',
value: a,
loc:{start:{col:0, line:0},
end:{col:1, line:0}
}
);
Assignment Expression
Augmented code
var a= 10;
___jside.push({
name: 'a',
value: a,
loc:{start:{col:0, line:0},
end:{col:1, line:0}
}
);
Variable declaration Expression
Augmented code
function add(a, b){
return a+b
}
function add(a, b) {
var ___jsiide = [{local: "function",
arg: arguments,
name: add}];
window.parent.parent
.postMessage(JSON.stringify(___jsiide),
"http://localhost:5000/");
return a + b;
}
function declaration Expression
เครื่องมือที่ใช้ในการพัฒนา
atom.io
babel
webpack
browserSync
node.js
express.js
mocha.js
split.js
แนวทางการพัฒนาในอนาคต
detect Potential Infintite loop
diff change
library support
syntax error alert
runtime error alert
ETC.
plugin system
ขอบคุณครับ
By Veha Suwatphisankij
show progress of JSide development