CS320 Principles of
Programming Languages
MATLAB
PROGRAMMING
LANGUAGE
EVALUATION
GROUP XYZ
CS320 MATLAB Evaluation
SECTION 1: INTRODUCTION & PARADIGMS
TABLE OF CONTENTS SECTION 2: PROMINENT FEATURES
SECTION 3: EVALUATING
SECTION 4: LANGUAGE STRUCTURE &
GRAMMAR & AUTOMATA
SECTION 5: APPLICATIONS & COMPARISON
SECTION 6: CONCLUSION
CS320 MATLAB
INTRODUCTION & PARADIGMS
CS320 MATLAB
BACKGROUND HISTORY OF MATLAB
1970S
The earliest release. Began as a
simple matrix calculation program.
ORIGINAL GOAL
Perform matrix math without writing
complex Fortran or C code.
TODAY
A global standard used by millions of
engineers and scientists for complex
data analysis and calculations.
Commercial Launch Expansion AI Integration Global Standard Modern Era
MathWorks founded. First Simulink introduced. Toolboxes grow. Deep A global standard used by Complex data analysis,
commercial version of MATLAB expands into learning, machine learning, millions of engineers and scientific computing, and
MATLAB released to the simulation and model- and AI capabilities added. scientists worldwide. engineering simulations.
public. based design.
1984 1990S 2000S 2010S TODAY
1970S 1980 1996 2016 2020 NOW
Origins Development MATLAB 5 Cloud Era AI Tools Future
Earliest release. Began as a Cleve Moler develops MATLAB 5 released with MATLAB Online and cloud Enhanced AI and deep Millions of users globally.
simple matrix calculation MATLAB to help students major improvements in computing capabilities learning toolboxes for Industry standard for
program. perform matrix math graphics and programming. introduced. modern engineering technical computing and
without Fortran. challenges. research.
CS320 Principles of
Programming Languages
WHAT IS
MATLAB?
MATLAB = MATrix LABoratory
Developed by MathWorks
A high-performance numerical computing
environment
A multi-paradigm programming language
CS320 Programming
Languages
THE CORE
PHILOSOPHY
Core Philosophy: "Think in matrices, not scalars."
Designed for natural mathematical manipulation.
Write code exactly as you write equations on
paper.
Eliminates complex low-level code management.
CS320 MATLAB
EVERYTHING IS
A MATRIX
The single, universal core data
structure.
In traditional languages: 5 is a scalar.
In MATLAB: 5 is treated as a 1x1 matrix.
CS320 MATLAB
SUITABLE APPLICATIONS
MATLAB is the industry standard for numerical computing, linear algebra, control
systems, and digital signal processing. Its powerful toolboxes make it essential across
engineering, finance, and scientific research domains.
CS320 MATLAB
EXPANDING INTO MODERN TECH
Modern Applications: Machine Learning & Deep Learning; Image & Video Processing;
Robotics & Autonomous Vehicles
CS320 - MATLAB Evaluation
AEROSPACE &
AUTOMOTIVE
MATLAB combined with Simulink is the industry
standard for modeling dynamic systems. Engineers
use it to simulate ABS braking systems, flight trajectory
calculations, engine control units, and autonomous
vehicle algorithms before physical prototyping.
CS320 - MATLAB Evaluation
AI AND DATA
SCIENCE
MATLAB enables rapid AI prototyping with drag-and-
drop Deep Learning Toolbox. Build neural networks
visually, train models with GPU acceleration, and
deploy to production—comparable to Julia's
flexibility with MathWorks' professional support.
CS320 Principles of
Programming Languages
WHAT IS THE PARADIGM
OF MATLAB?
MATLAB is a Multi-paradigm language.
Primary Paradigm: Array-Oriented
(Vectorized)
Supporting Paradigms: Procedural & Object-
Oriented (OOP)
CS320 MATLAB
ARRAY-ORIENTED
PROGRAMMING
Also known as Vectorization.
Apply operations to entire data structures
at once.
C/C++:
No explicit loops (for, while) needed.
for(int i=0; i<N; i++) {C[i] = A[i] + B[i];}
Result: Cleaner code and drastically faster
MATLAB:
execution.
C = A + B;
MATLAB supports traditional procedural
CS320 Programming
programming with functions and scripts, plus full
Languages object-oriented programming with classes.
Features include inheritance, encapsulation, and
polymorphism for building large-scale software
PROCEDURAL & OOP
systems.
classdef Vehicle
IN MATLAB
properties
Speed
end
methods
function accelerate(obj)
end
end
end
CS320 MATLAB
PROMINENT FEATURES
CS320 MATLAB
MATHEMATICAL
COMPUTATIONS
MATLAB is capable of solving problems ranging from
basic operations (addition, subtraction,
multiplication, division) to complex systems.
Operations on scalars, vectors, matrices, and multi-
dimensional arrays can be performed very easily.
It provides a rich set of functions for matrix
operations, including addition, multiplication,
determinant calculation, identity matrix, associative
properties, matrix rank, inverse matrix, and adjoint
matrix.
CS320 MATLAB
MATHEMATICAL
COMPUTATIONS
MATLAB provides a wide range of advanced
mathematical functions beyond matrices, including
trigonometry, exponential, logarithmic functions,
and complex numbers.
It supports statistical analysis and probability
computations, making it useful for data analysis and
modeling.
It includes powerful tools for numerical methods
such as interpolation, differentiation, and
integration.
CS320 MATLAB
DATA
VISULIZATIONS
MATLAB offers highly customizable 2D/3D graphics
essential for engineering reporting. Create complex
surface plots, contour maps, and interactive visualizations
with simple commands like surf(), mesh(), and plot3().
Professional-quality figures ready for publication.
CS320 MATLAB
3D Representations: Deapth and Volumes
2D Basic Plotting
DATA
VISULIZATIONS
Advance Interations and Tools
CS320 MATLAB
2D BASIC
2D Basic Plotting
PLOTTING
With commands like:
Plot(x, y)
Scatter(x, y)
Bar(y)
Histogram(x)
Pie(x)
Stairs(x, y)
CS320 MATLAB
3D
3D Representations: Deapth and Volumes
REPRESENTATIONS
CS320 MATLAB
PROGRAMMING & SCRIPTING:
TOOLBOXES
MATLAB's proprietary toolbox ecosystem provides professionally maintained,
guaranteed integration libraries. Unlike R's CRAN or Julia's packages, MathWorks
ensures quality control and compatibility across all toolboxes.
CS320 MATLAB
LIVE EDITOR
Support additional formatted text such as
headings, bullet-point lists, and numbered lists.
Integrate mathematical equations using LaTeX
syntax.
Support inserting images, hyperlinks, and tables.
Enable exporting Live Editor content to common
formats such as PDF, HTML, and Microsoft Word
for easy sharing and publishing.
CS320 MATLAB
SIMULINK
Simulink is a graphical programming and simulation
environment developed by MathWorks for modeling and
analyzing dynamic systems.
Uses Block Diagrams to build models via drag-and-drop
components
Simulates system behavior over time
Provides a large library of built-in and customizable blocks
CS320 MATLAB
SIMULINK
Multi-domain modeling and Integrates
different disciplines such as:
Electrical,
Mechanical,
Control systems Into a unified model
Seamless integration: Simulink with
MATLAB, allowing users to use MATLAB
functions and scripts directly within
Simulink models
CS320 MATLAB
SIMULINK
Model verification and validation:
Simulink provides tools to ensure the
accuracy and reliability of system
models
Advanced quality features:
model checking, test generation, and
integration with formal methods to
improve model quality and correctness
CS320 MATLAB
SIMULINK CLOUD &
MATLAB ONLINE
MATLAB Online: A web-based version that
allows users to access and use both
MATLAB and Simulink directly through a
web browser
Cloud-based platform: Provides maximum
convenience and flexibility without
requiring any software installation
Easy access: Simple registration process
with a 30-day free trial available
CS320 MATLAB
Create automated scripts, functions,
specialized toolboxes
CS320 Principles of
Programming Languages
WHAT MAKES A GOOD
PROGRAMMING LANGUAGE?
1. Ease of Programming - Readability
2. Simple to learn
3. Orthogonality
4. Portability
5. Abstraction
6. Reuse & Maintainance
7. Efficient Target Code
8. High Security
Very high
CS320 MATLAB
Natural syntax that closely mirrors
READABILITY
pure mathematical notation.
Allows users to focus on
algorithmic thinking rather than
struggling with complex
programming rules.
CS320 Principles of Programming
Languages
LEARNABILITY
Easy to use, especially for non-CS students
Interactive Read-Eval-Print loop allows instant
feedback
Built-in help and documentation support beginners
Syntax is similar to mathematical notation
Well-suited for engineering and science students
CS320 Programming
Languages
ORTHOGONALITY
Relatively low orthogonality
Same task can be done using multiple different
functions
Overlapping functionality can confuse beginners
Special cases and exceptions exist
Different operators for matrix vs element-wise
operations
Increases complexity in learning and using the
language
CS320 MATLAB
THE "DOT" OPERATOR
EXCEPTION
A*B → Matrix Multiplication
→
A .* B Element-wise Multiplication
This distinction is essential for
mathematical accuracy. While it
reduces orthogonality, it prevents
ambiguity in matrix operations.
CS320 MATLAB
THE "DOT" OPERATOR
EXCEPTION
A*B → Matrix Multiplication
→
A .* B Element-wise Multiplication
This distinction is essential for
mathematical accuracy. While it
reduces orthogonality, it prevents
ambiguity in matrix operations.
CS320 Programming
Languages
PORTABILITY
Runs on all major operating systems: Windows, macOS, Linux
Code works the same across platforms (no need to change code)
Built on Java Virtual Machine (JVM) →
ensures consistent behavior
→
High portability suitable for multi-platform environments
However, requires a paid license from MathWorks
Less flexible compared to free alternatives like Python or Julia
MATLAB Evaluation DATA ABSTRACTION
MATLAB provides rich data abstractions including
ABSTRACTION
structs for grouping related data, classes for object-
oriented design, cells for heterogeneous collections,
and tables for labeled datasets.
CONTROL ABSTRACTION
Control abstractions include user-defined functions,
nested functions, anonymous functions, for/while
loops, and try/catch blocks for error handling.
HIGH-LEVEL DESIGN BENEFITS
High abstraction support enables engineers to focus
on algorithms rather than low-level implementation
details, making MATLAB ideal for rapid mathematical
prototyping.
CS320 MATLAB Evaluation
CODE REUSE &
MAINTENANCE
Supports modular programming using user-defined
functions
Provides official toolboxes for different applications
Stable ecosystem →
consistent APIs across versions
→
Backward compatibility old code still works in
newer versions
Easy to reuse code with organized function libraries
Helps simplify long-term maintenance and
development
CS320 MATLAB
EFFICIENT TARGET
CODE
Uses highly optimized C and Fortran libraries (e.g.,
BLAS, LAPACK)
Fast performance for matrix and numerical
computations
Vectorized code runs efficiently (no need for
manual optimization)
Achieves near-native performance automatically
Ideal for fast execution of numerical algorithms
CS320 Evaluation
HIGH SECURITY
Proprietary (closed-source)→ controlled and secure environment
Maintained by MathWorks → strict quality control
Lower risk of supply chain attacks (fewer external dependencies)
→
Fewer third-party libraries fewer potential vulnerabilities
Regular security updates and official support
Suitable for enterprise use with compliance requirements
Trusted in critical industries (aerospace, defense, finance)
Ensures high code integrity and reliability
CS320 MATLAB
MATLAB'S TRANSLATOR
MATLAB is an Interpreted Language
It does not require manual compilation into
machine code
It executes code line by line using an
interpreter
Modern MATLAB uses JIT Compiler
It uses a two-step execution mechanism:
Interpreter reads and executes code
JIT compiler optimizes frequently used
parts
This allows fast execution with immediate
results
CS320 MATLAB
MATLAB JIT COMPILER
LEXICAL LEVEL
Code Lexer Tokens
Ex: x=A+5 →x|=|A|+|5
MATLAB vs C++ Similar: both use lexer/tokenization
Different: MATLAB simpler syntax, fewer token types
IDENTIFIERS
Use letters,
Content: Start with letter
digits, _
Case-sensitive Max 63 chars
Ex: ✔ myVar, data_1
x 1data, my-var
MATLAB vs C++ MATLAB: must start with letter
C++: can start with _
C++: no strict 63-char limit (implementation-dependent)
FSA FOR IDENTIFIERS
RegEx: ^[A-Za-z][A-Za-z0-9_]{0,62}$
NUMBER TYPES
CONTENT:
Integer, Real (default: double)
Scientific: 1e6
Hex: 0xFF, Binary: 0b101
MATLAB vs C++
default = double must specify (int, float, double)
dynamic typing static typing
FSA FOR INTEGERS
Base 10: ^-?[0-9]+$
Base 16: ^0[xX][0-9a-fA-F]+$
COMMENTS
CONTENT:
% single line
%{
multi-line
%}
MATLAB vs C++
% // and /* */
KEYWORDS
CONTENT:
if, for, while
function, return
classdef
end (close blocks)
MATLAB vs C++
uses end uses { }
MATLAB easier to read, C++ more flexible
GRAMMAR LEVEL
CONTENT: MATLAB vs C++
Tokens→ Parser → Syntax Same parsing concept
C++ grammar more complex
Uses CFG
(templates, pointers)
ASSIGNMENT
CONTENT: MATLAB vs C++
x=5 MATLAB: dynamic typing
A(1) = b + 5 C++: int x = 5;
No declaration needed Must declare type
CFG (ASSIGNMENT)
CONTENT: MATLAB vs C++
<assignment> ::= <lhs> "=" <rhs>
MATLAB: supports matrix literal [ ]
<lhs> ::= id | id(index)
C++: no native matrix syntax
<rhs> ::= literal | id | expr | [matrix]
ABSTRACT SYNTAX TREE
CONTENT: MATLAB vs C++
A(1) = b + 5
=
Same AST concept
/\
C++ AST more complex (types,
A(1) +
pointers, memory)
/\
b 5
IDENTIFIER RECOGNITION
CONTENT: MATLAB vs C++
Regex:
Letter (Letter | Digit | _)*
Flow: Similar recognition rules
Start → →
Letter Accept C++ allows _ at start
Loop: Letter / Digit / _
NUMBER RECOGNITION
CONTENT: MATLAB vs C++
Types:
Integer
Float Similar number formats
Scientific C++ stricter typing (int vs float)
Hex MATLAB auto-converts types
Multiple branches in FSA
CS320 MATLAB
MATHLAB VS. THE WORD
Where does MATLAB stand in today's tech ecosystem?
A Comparative Analysis: C/C++, Python, R, and Julia.
COMPARISION
MATHLAB C / C++
Hardware Deployment
Rapid Prototyping Verbose code, manual memory
Extremely concise syntax. allocation.
No manual memory management. Unmatched execution speed on
Optimizes Developer Time. embedded hardware.
Optimizes Machine Time.
COMPARISION
MATHLAB Python
The Open-Source Giant
The Premium Ecosystem
100% Free and highly versatile
Commercial (Paid license).
(Web, AI, Servers).
Toolboxes are perfectly integrated
Scientific computing relies on
by MathWorks.
fragmented libraries (NumPy,
Matrix operations are native.
Pandas).
COMPARISION
MATHLAB R
The King of Engineering The King of Statistics
Digital Signal Processing (DSP), Data Analytics, Bioinformatics,
Physics Simulations, Control Statistical Inference.
Systems.
TWO-LANGUAGE PROBLEM
Step 1: Prototype a math model in a slow, high-level language
(MATLAB/Python).
Step 2: Rewrite the entire code in a fast, low-level language (C/C++)
for hardware production.
Result: Wasted time, double the effort, and more bugs!
COMPARISION
MATHLAB JULIA 🚀
The Modern Challenger
Created specifically to solve the
Decades of trusted, industry- "Two-Language Problem".
standard toolboxes. Syntax as easy as MATLAB,
execution speed matches C
natively.
100% Open-source.
COMPARISON MATRIX
Feature C/C++ Python Julia MATLAB
Execution ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐
Speed (Fast) (Slow) (Fast) (Medium)
Cost Free Free Free Paid ($$$)
Learning Curve Steep / Hard Easy Medium Very Easy
Level of
Low High High Very High
Abstraction
THE ULTIMATE WEAPON: SIMULINK
Why do companies still pay millions for
MATLAB?
➔ SIMULINK
A graphical block-diagram environment
for Model-Based Design.
Simulate entire physical systems (cars,
aerospace) without writing code.
CS320 MATLAB
WHEN SHOULD YOU
CHOOSE MATLAB? ✔ Your institution (university or company)
already provides the license.
✔ You are heavily involved in Linear Control
Systems, DSP, or RF engineering.
✔ Your project requires Simulink for system
architecture and simulation.
CS320 Principles of
Programming Languages
THANK YOU FOR
YOUR ATTENTION
DO YOU HAVE ANY QUESTION?