CHAPTER 3 PROGRAMMING TOOLS & ENVIRONMENT SUNG-DONG KIM DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY
EDITOR (1) Language sensitive editor Visual Studio editor, vi, … VI Two modes Command mode Edit mode On start: command mode ‘Esc’ key: exit from edit mode (2014-1) Understanding of Programming Languages 2
EDITOR (2) Commands (only in command mode) (2014-1) Understanding of Programming Languages 3 commands description a append i insert :w store file :q quit edit cw change word dw delete word x delete character …
TRANSLATOR (1) Compiler High-level programming language machine language Preprocessor Convert program source code before compiling Perform macro substitutions (2014-1) Understanding of Programming Languages 4 #include #define TWO 2 #define MSG “Love is Art”
TRANSLATOR (2) Interpreter Translate/execute sentence by sentence Slow execution than compiler Inefficient memory management Flexible programming (2014-1) Understanding of Programming Languages 5
LINKER Connect an object program to the code for standard library functions to resources supplied by the OS Integrate separate modules External functions External variables Generate executable code Support modular programming (2014-1) Understanding of Programming Languages 6
LOADER Resolve all relocatable addresses relative to a given base (starting) address Make executable code more flexible Loading process Behind the scenes (by OS) (2014-1) Understanding of Programming Languages 7
DEBUGGER (1) Find logical errors in the program Functions Tracing Breakpoint Watching (2014-1) Understanding of Programming Languages 8
DEBUGGER (2) Visual Studio’s debugger F9: set/reset breakpoint F5: program run & stop at breakpoint F10: step over ( 한 명령 실행. 함수의 경우 그냥 실행 ) F11: step into ( 한 명령 실행. 함수의 경우 함수 내부로 이동 ) Shift-F5: exit debugging Watch: 변수의 값을 보여줌 Call stack: 함수의 호출 순서를 보여줌 (2014-1) Understanding of Programming Languages 9
DEBUGGER (3) GDB Compile with –g option Commands (2014-1) Understanding of Programming Languages 10 commands description run run program break set breakpoint clear clear breakpoint print print variable cont continue program list list program code …
(2014-1) Understanding of Programming Languages 11 #include int wib(int no1, int no2) { int result, diff; diff = no1 - no2; result = no1 / diff; return result; }
(2014-1) Understanding of Programming Languages 12 int main(int argc, char *argv[]) { int value, div, result, i, total; value = 10; div = 6; total = 0; for(i = 0; i < 10; i++) { result = wib(value, div); total += result; div++; value--; } printf("%d wibed by %d equals %d\n", value, div, total); return 0; }
CONFIGURATION TOOL Trace the generation and change of the module Manage the generation of the execution files Project file of Visual Studio Makefile in UNIX (2014-1) Understanding of Programming Languages 13
MAKEFILE Manage dependencies among program files (2014-1) Understanding of Programming Languages 14 main.c main.o input.c input.o calc.c calc.o output.c output.o compile add (final execution file) link
(2014-1) Understanding of Programming Languages 15 add : main.o input.o calc.o output.o cc –o add main.o input.o calc.o output.o main.o : main.c cc –c main.c input.o : input.c cc –c input.c calc.o : calc.c cc –c calc.c output.o : output.c cc –c output.c target_code: prerequisite-list construction-command
(2014-1) Understanding of Programming Languages 16 WHAT TO DO: HOMEWORK … points.txt readData() input.c calcGrade() calc.c outputResult() output.c readData() calcGrade() outputResult() main.c … grade.txt
제출할 것 표지 : 프로그래밍 언어론 (A/N class), 이름 .c,.h 파일 하나 1 페이지 point.txt, grade.txt 1 페이지 (2014-1) Understanding of Programming Languages 17
VISUAL STUDIO (1) IDE (integrated development environment) from Microsoft History 1997: Visual Studio : Visual Studio : Visual Studio.NET Visual Studio.NET 2003 Visual Studio 2005 Visual Studio 2008 (2014-1) Understanding of Programming Languages 18
VISUAL STUDIO (2) Features Editor with syntax highlighting and code completion Debugger Compilers Tools Project management Code generating wizards (2014-1) Understanding of Programming Languages 19
.NET FRAMEWORK (1) What is it? Multi-language environment for building, releasing and executing web services and applications Software component that is a part of Microsoft Windows operating systems (2014-1) Understanding of Programming Languages 20
.NET FRAMEWORK (2) What does it? Have a large library of pre-coded solutions to common program requirements Manage the execution of programs written specifically for the framework (2014-1) Understanding of Programming Languages 21
.NET FRAMEWORK (3) History (2014-1) Understanding of Programming Languages 22 VersionRelease dateNotesDevelopment toolDistributed with original version Visual Studio.NETN/A first update Visual Studio.NET 2003 Windows Server rewrite of framework Visual Studio 2005 Windows Server 2003 R2
.NET FRAMEWORK (4) (2014-1) Understanding of Programming Languages 23 VersionRelease dateNotesDevelopment toolDistributed with WCF,WPF,WFExpression Blend Windows VistaWindows Vista, Windows Server LINQVisual Studio 2008 Windows 7Windows 7, Windows Server 2008 R parallel extensions Visual Studio 2010N/A asynchronous programming model Visual Studio 2012 Windows 8Windows 8, Windows Server 2012
.NET FRAMEWORK (5) Structure (2014-1) Understanding of Programming Languages 24
.NET FRAMEWORK (6) Components Base Class Library Common Language Runtime New Programming Languages Common Language Specification (2014-1) Understanding of Programming Languages 25
.NET FRAMEWORK (7) Base Class Library Pre-coded solutions Large range of programming needs in areas including User interface Data access Database connectivity Cryptography Web application development Numeric algorithms Network communications (2014-1) Understanding of Programming Languages 26
.NET FRAMEWORK (8) Common Language Runtime (CLR) Software environment that manages the program’s runtime requirements Provides the appearance of an application virtual machine make programmer independent on the specific CPU Provides services Security mechanisms Memory management Exception handling (2014-1) Understanding of Programming Languages 27
.NET FRAMEWORK (9) New programming languages Visual Basic Visual C++ Visual C# Jscript Visual J# (2014-1) Understanding of Programming Languages 28
.NET FRAMEWORK (10) Common language specification Common specification of the programming languages Use all capabilities in.NET framework Compatibility among other CLS programming languages (2014-1) Understanding of Programming Languages 29
(2014-1) Understanding of Programming Languages 30 Common Language Infrastructure
ECLIPSE (1) What Software development platform in Java language Java development environment (JDK) + plug-in Features Open source Java development environment (2014-1) Understanding of Programming Languages 31
ECLIPSE (2) History From IBM Object Technology International (OTI) Nov., 2001: Consortium Jan., 2004: Eclipse foundation ( (2014-1) Understanding of Programming Languages 32
ECLIPSE (3) Release (2014-1) Understanding of Programming Languages 33 ReleaseDateVersion Callisto 2006 년 6 월 30 일 3.2 Europa 2007 년 6 월 29 일 3.3 Ganymede 2008 년 6 월 25 일 3.4 Galileo 2009 년 6 월 24 일 3.5 Helios 2010 년 6 월 23 일 3.6 Indigo 2011 년 6 월 22 일 3.7 Juno 2012 년 6 월 27 일 3.8 & 4.2 Kepler 2013 년 6 월 26 일 ( 예정 ) 4.xx
ECLIPSE (4) Installation Download Eclipse eclipse-SDK win32.zip (2014-1) Understanding of Programming Languages 34
(2014-1) Understanding of Programming Languages 35
(2014-1) Understanding of Programming Languages 36
ECLIPSE (5) Programming (2014-1) Understanding of Programming Languages 37
ECLIPSE (6) JRE (java runtime environment) (2014-1) Understanding of Programming Languages 38
(2014-1) Understanding of Programming Languages 39
ECLIPSE (7) Run eclipse (2014-1) Understanding of Programming Languages 40
(2014-1) Understanding of Programming Languages 41
(2014-1) Understanding of Programming Languages 42
(2014-1) Understanding of Programming Languages 43
(2014-1) Understanding of Programming Languages 44
(2014-1) Understanding of Programming Languages 45
(2014-1) Understanding of Programming Languages 46
(2014-1) Understanding of Programming Languages 47
(2014-1) Understanding of Programming Languages 48
(2014-1) Understanding of Programming Languages 49
XCODE (1) IDE in Mac OS (2014-1) Understanding of Programming Languages 50
(2014-1) Understanding of Programming Languages 51
(2014-1) Understanding of Programming Languages 52
(2014-1) Understanding of Programming Languages 53
(2014-1) Understanding of Programming Languages 54
(2014-1) Understanding of Programming Languages 55
(2014-1) Understanding of Programming Languages 56