You are on page 1of 50

COURSE: MICROPROCESSOR SYSTEM

COMPILER, ASSEMBLER, LINKER


& PROGRAMMING LANGUAGE

Agus Bejo, D.Eng.


Digital System Laboratory
Dept. of Electrical Engineering and Information Technology,
Faculty of Engineering, Universitas Gadjah Mada
INTRODUCTION

Who is he

Michael Schumacher
“A seven-time Formula One World Champion”
INTRODUCTION

Which one is faster

Application
Algo Code

Processor
INTRODUCTION

Which one is more convenient

Compiler
INTRODUCTION
How application running on processor

Application
Processor Compiler
Algo Code
LANGUAGE ABSTRACTION
• High-Level Language

• Middle-Level Language (Assembly Code)

• Low-Level Language (Machine Code)


TOOLCHAIN

GCC Toolchain

Compiler
Mentranslate bahasa level tinggi
menjadi bahasa assembly.
Assembler
Mengkonversi bahasa assembly menjadi bahasa mesin. Kode mesin disini
masih berupa potongan-potongan file biasa disebut dengan object code.
Linker
Menggabungkan beberapa object code bersama beberapa library menjadi
sebuah file utuh yang siap dieksekusi seperti file *.exe atau *.out.
TOOLCHAIN
TOOLCHAIN

C Code

Assembly Code

Machine Code
MOBILE PLATFORM WAR

App.
Processor

Source: http://www.phonearena.com/news/Qualcomm-is-still-the-mobile-processor-market-leader-Intel-pretty-close-to-MediaTek_id53
Application Processor - System on Chip
QUALCOMM - Snapdragon SoC

ARM
processor
FLASHBACK: WHY ARM PROCESSOR?

Why ARM

Double
Decode

ASIP

Jazelle: Java Accellerator


PROGRAMMING LANGUAGE

CODING
(Programming Languages)

Processor
PROGRAMMING LANGUAGE

What is the best Programming Language


2015
PROGRAMMING LANGUAGE

What is the best Programming Language


2016
PROGRAMMING LANGUAGE

What is the best Programming Language

2017 & 2018


PROGRAMMING LANGUAGE

What is the mot popular Programming Language


PROGRAMMING LANGUAGE
PROGRAMMING LANGUAGE
PROGRAMMING LANGUAGE

Top 5
New Programming Languages
With High Demand

Source: https://www.technotification.com/2018/08/new-demanding-
programming-languages.html
PROGRAMMING LANGUAGE
1. Swift

 released in 2014
 developed by Apple Inc
 for developing applications for iOS macOS, tvOS, and watchOS
 its concepts and features are based on Objective C
PROGRAMMING LANGUAGE
2. Kotlin

 first heard in 2011


 designed by JetBrains (a software development company)
 runs on Java virtual machine (JVM) and LLVM compiler
 an alternative to Java programming language for Android development
PROGRAMMING LANGUAGE
3. Rust

 came into existence in 2010


 designed by Graydon Hoare who was an employee of Mozilla
 an alternative to C++ programming language
 delivers better performance and memory management.
 can also come in handy in writing backend web applications.
PROGRAMMING LANGUAGE
4. Golang

 announced in 2007, officially released to the public in 2009


 developed by Robert Griesemer, Ken Thompson and Rob Pike under
the sponsorship of Google Inc
 derived from C++ and Java, an alternative to C++ since it is simpler,
more efficient in terms of memory, optimized for high performance
 can be used to create applications for different platforms including
Windows, Linux, and macOS
PROGRAMMING LANGUAGE
5. Julia

 released in 2012
 developed by Stefan Karpinski, Alan Edelman, and Jeff Bezanson
 a dynamically typed programming language mainly used for numerical
and computational analysis.
 an alternative to Python and R programming languages
 able to perform at the optimum levels even when dealing with
complex data
PROGRAMMING LANGUAGE

Compiled
(Programming)
CODING C, Java, Pascal, Basic,
(Programming Cobol, Fortran, ADA, Go
Languages)
Intrepreted
(Scripting)
Python, Java, Ruby, Matlab,
PHP, JavaScript, R
COMPILER VS INTERPRETER

Compiler Translator
- Translasi off-line, - Translasi on-line,
- Optimisasi kode baik, - Tidak ada optimisasi kode,
- Eksekusi lebih cepat - Eksekusi lebih lambat,
- Lebih rumit bagi programmer - Lebih sederhana bagi programmer
- Run anywhere
COMPILER & INTERPRETER ABSTRACTION

Java
Toolchain
Java
Bahasa pemrograman yang memiliki slogan “Write Once Run Anywhere”
(WORA) karena menggunakan konsep interpreter. Sekali coding program bisa
jalan untuk semua platform OS.

 Interpreter (JIT Compiler)


JAVA
Compiler

Interpteter
Toolchain
Qt
Sebuah framework pemrograman yang memiliki filosofi sama dengan java
yaitu sekali coding program bisa jalan untuk semua platform OS baik desktop
OS maupun mobile OS. Bahasa pemrograman yang digunakan adalah C++.
PYTHON

Compiler Intepreter
Programming Language vs Scripting Language

Employee
Detail
Syntax

Boss
General
Syntax
Programming Abstraction
WHY PYTHON?

Why
Easy to learn
Nice and readable syntax
Less code
Good community
Makes your life easy
ARTIFICIAL NEURAL NETWORK
ANN is mostly used for Pattern Recognition
ANN with PYTHON

Python Code
HOW TO IMPROVE PYTHON PERFORMANCE
CALLING C FROM PYTHON

Python-C-API Ctypes
Wripper.py
CLOSING STATEMENT

 Python adalah salah satu bahasa pemrograman


terpoluler saat ini, cocok untuk pengembang aplikasi
dengan penekanan pada aspek “rapid development
and easy maintenance”.

 Python memiliki sintaks yang mudah sehingga cepat


dipelajari/dikuasai oleh orang yang baru belajar
sekalipun.

 Efeknya dari fast development time adalah more


productifity.
SOFTWARE DEVELOPMENT TOOL
• Disebut juga dengan programming tool.
• Adalah sebuah program aplikasi yang digunakan sebagai alat bantu untuk
membuat dan merawat software (firmware).
• Adalah sebuah software bantu yang dapat digunakan oleh programmer
untuk membuat aplikasi, mendebug sekaligus melakukan perbaikan.

Contoh :
• MS Visual Studio
• NetBeans
• Qt Creator
• Android SDK
• Eclipse
• Keil ARM
• CodeVision AVR

45
SOFTWARE DEVELOPMENT TOOL
Contoh: Keil uVision untuk target prosesor ARM
SOFTWARE DEVELOPMENT TOOL
Keil uVision IDE: Editor, Compiler, Debugger
SOFTWARE DEVELOPMENT TOOL
- Free Compiler
- Open Source Compiler

- Free Editor
- Plugin Compiler
- Plugin Debuger
- C, C++, Java
- Own compiler
SOFTWARE DEVELOPMENT TOOL
CodeVisionAVR adalah software development tool untuk mikrokontroler
keluarga AVR.
SOFTWARE DEVELOPMENT TOOL
ARDUINO IDE adalah software development tool untuk development
board arduino.

You might also like