SlideShare a Scribd company logo

Classroom Object Oriented Language (COOL)

S. M. Masoud Sadrnezhaad
S. M. Masoud Sadrnezhaad
S. M. Masoud SadrnezhaadStudent at Student at Sharif University of Technology

Dec 26, 2016 Sharif University of Technology

Classroom Object Oriented Language (COOL)

1 of 18
Download to read offline
Classroom Object
Oriented Language:
COOL
S. M. M. Sadrnezhaad, R. Yazdanian, S. Karimi
Design goals
 Taught in compiler course in some universities
 Designed to be implementable in a short time (one semester)
 Give students an idea of many features of OO languages,
including:
 Abstraction
 Static Typing
 Inheritance
 Memory management
 Simple reflection
 Leaves many features out which are common to other languages
The not so COOL parts
 No arrays
 No floating point operations
 No “static” modifier
 No interfaces
 No method overloading
(but still allow overriding)
 No exceptions
 No packages
The reference compiler
 Built with C++
 Generates code for MIPS simulator named SPIM
Where does execution start?
 A class “Main” must be defined
 Containing a no-args “main” method
 Starts program execution
Expressions
 Expression language
 every expression has a type and a value
 Loops: while E loop E pool
 Conditionals: if E then E else E fi
 Case statement: case E of x: Type  E; esac
 Arithmetic operations
 Logical operations
 Assignment x  E

Recommended

Graph in data structure
Graph in data structureGraph in data structure
Graph in data structureAbrish06
 
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...
What are Data structures in Python? | List, Dictionary, Tuple Explained | Edu...Edureka!
 
Looping statement in python
Looping statement in pythonLooping statement in python
Looping statement in pythonRaginiJain21
 
Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)Introduction to NumPy (PyData SV 2013)
Introduction to NumPy (PyData SV 2013)PyData
 
Python Fundamentals
Python FundamentalsPython Fundamentals
Python FundamentalsSherif Rasmy
 
Python: Modules and Packages
Python: Modules and PackagesPython: Modules and Packages
Python: Modules and PackagesDamian T. Gordon
 

More Related Content

What's hot

Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Recursive Descent Parsing
Recursive Descent Parsing  Recursive Descent Parsing
Recursive Descent Parsing Md Tajul Islam
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosArthur Emanuel
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Functions and modules in python
Functions and modules in pythonFunctions and modules in python
Functions and modules in pythonKarin Lagesen
 
Lecture 3 insertion sort and complexity analysis
Lecture 3   insertion sort and complexity analysisLecture 3   insertion sort and complexity analysis
Lecture 3 insertion sort and complexity analysisjayavignesh86
 
Python Generators
Python GeneratorsPython Generators
Python GeneratorsAkshar Raaj
 
Dictionaries and Sets in Python
Dictionaries and Sets in PythonDictionaries and Sets in Python
Dictionaries and Sets in PythonRaajendra M
 
Applications of data structures
Applications of data structuresApplications of data structures
Applications of data structuresWipro
 
Fermat and euler theorem
Fermat and euler theoremFermat and euler theorem
Fermat and euler theoremJanani S
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interaçãoHumberto Cepep
 
02 Arrays And Memory Mapping
02 Arrays And Memory Mapping02 Arrays And Memory Mapping
02 Arrays And Memory MappingQundeel
 
Programing Slicing and Its applications
Programing Slicing and Its applicationsPrograming Slicing and Its applications
Programing Slicing and Its applicationsAnkur Jain
 

What's hot (20)

Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Python Objects
Python ObjectsPython Objects
Python Objects
 
Tree - Data Structure
Tree - Data StructureTree - Data Structure
Tree - Data Structure
 
Slicing
SlicingSlicing
Slicing
 
ML_saikat dutt.pdf
ML_saikat dutt.pdfML_saikat dutt.pdf
ML_saikat dutt.pdf
 
Recursive Descent Parsing
Recursive Descent Parsing  Recursive Descent Parsing
Recursive Descent Parsing
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
 
Hashing
HashingHashing
Hashing
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
AVL Tree
AVL TreeAVL Tree
AVL Tree
 
Functions and modules in python
Functions and modules in pythonFunctions and modules in python
Functions and modules in python
 
Lecture 3 insertion sort and complexity analysis
Lecture 3   insertion sort and complexity analysisLecture 3   insertion sort and complexity analysis
Lecture 3 insertion sort and complexity analysis
 
Python Generators
Python GeneratorsPython Generators
Python Generators
 
Divide and conquer
Divide and conquerDivide and conquer
Divide and conquer
 
Dictionaries and Sets in Python
Dictionaries and Sets in PythonDictionaries and Sets in Python
Dictionaries and Sets in Python
 
Applications of data structures
Applications of data structuresApplications of data structures
Applications of data structures
 
Fermat and euler theorem
Fermat and euler theoremFermat and euler theorem
Fermat and euler theorem
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interação
 
02 Arrays And Memory Mapping
02 Arrays And Memory Mapping02 Arrays And Memory Mapping
02 Arrays And Memory Mapping
 
Programing Slicing and Its applications
Programing Slicing and Its applicationsPrograming Slicing and Its applications
Programing Slicing and Its applications
 

Viewers also liked

Classroom Object
Classroom ObjectClassroom Object
Classroom Objecto6murat
 
Speaking class 7
Speaking class 7Speaking class 7
Speaking class 7LyudmilaM
 
Classroom objects
Classroom objectsClassroom objects
Classroom objectsjuliuss11
 
General Linguistics By Rabia
General Linguistics By RabiaGeneral Linguistics By Rabia
General Linguistics By RabiaDr. Cupid Lucid
 
Classroom objects
Classroom objectsClassroom objects
Classroom objectsyesican
 
Classroom objects
Classroom objects Classroom objects
Classroom objects Nergis Ergen
 
1.8 my classroom
1.8 my classroom1.8 my classroom
1.8 my classroomGaby Bloise
 
Classroom Objects
Classroom ObjectsClassroom Objects
Classroom ObjectsMr. Robert
 
Classrom Objects Worksheet
Classrom Objects   WorksheetClassrom Objects   Worksheet
Classrom Objects Worksheetaysgl
 
Classroom objects textbook page 73
Classroom objects textbook page 73Classroom objects textbook page 73
Classroom objects textbook page 73Asniem CA
 
Classroom Objects 5
Classroom Objects 5Classroom Objects 5
Classroom Objects 5Ana Freixo
 
21st century teacher
21st century teacher21st century teacher
21st century teachernatasha6
 
ESL: Classroom Objects
ESL: Classroom Objects ESL: Classroom Objects
ESL: Classroom Objects A. Simoes
 
CLASSROOM OBJECTS
CLASSROOM OBJECTSCLASSROOM OBJECTS
CLASSROOM OBJECTSwojcmich
 
Classroom Objects: PowerPoint Activities
Classroom Objects: PowerPoint ActivitiesClassroom Objects: PowerPoint Activities
Classroom Objects: PowerPoint ActivitiesA. Simoes
 

Viewers also liked (20)

Classroom Object
Classroom ObjectClassroom Object
Classroom Object
 
Speaking class 7
Speaking class 7Speaking class 7
Speaking class 7
 
Classroom objects
Classroom objectsClassroom objects
Classroom objects
 
Classroom objects
Classroom objectsClassroom objects
Classroom objects
 
Classroom
ClassroomClassroom
Classroom
 
General Linguistics By Rabia
General Linguistics By RabiaGeneral Linguistics By Rabia
General Linguistics By Rabia
 
Classroom objects
Classroom objectsClassroom objects
Classroom objects
 
Classroom objects
Classroom objects Classroom objects
Classroom objects
 
1.8 my classroom
1.8 my classroom1.8 my classroom
1.8 my classroom
 
Classroom objects
Classroom objectsClassroom objects
Classroom objects
 
Classroom Objects
Classroom ObjectsClassroom Objects
Classroom Objects
 
Classrom Objects Worksheet
Classrom Objects   WorksheetClassrom Objects   Worksheet
Classrom Objects Worksheet
 
Worksheet classroom objects
Worksheet   classroom objectsWorksheet   classroom objects
Worksheet classroom objects
 
Classroom objects textbook page 73
Classroom objects textbook page 73Classroom objects textbook page 73
Classroom objects textbook page 73
 
Classroom Objects 5
Classroom Objects 5Classroom Objects 5
Classroom Objects 5
 
21st century teacher
21st century teacher21st century teacher
21st century teacher
 
ESL: Classroom Objects
ESL: Classroom Objects ESL: Classroom Objects
ESL: Classroom Objects
 
CLASSROOM OBJECTS
CLASSROOM OBJECTSCLASSROOM OBJECTS
CLASSROOM OBJECTS
 
Classroom Objects: PowerPoint Activities
Classroom Objects: PowerPoint ActivitiesClassroom Objects: PowerPoint Activities
Classroom Objects: PowerPoint Activities
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 

Similar to Classroom Object Oriented Language (COOL)

Modern Compiler Design
Modern Compiler DesignModern Compiler Design
Modern Compiler Designnextlib
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharpvoegtu
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharphmanjarawala
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharpvoegtu
 
C# Summer course - Lecture 3
C# Summer course - Lecture 3C# Summer course - Lecture 3
C# Summer course - Lecture 3mohamedsamyali
 
Intro to Java for C++ Developers
Intro to Java for C++ DevelopersIntro to Java for C++ Developers
Intro to Java for C++ DevelopersZachary Blair
 
Internet programming slide - java.ppt
Internet programming slide - java.pptInternet programming slide - java.ppt
Internet programming slide - java.pptMikeAdva
 
IntroductionToCSharp.ppt
IntroductionToCSharp.pptIntroductionToCSharp.ppt
IntroductionToCSharp.pptRishikaRuhela
 
Introduction toc sharp
Introduction toc sharpIntroduction toc sharp
Introduction toc sharpSDFG5
 
IntroductionToCSharp.ppt
IntroductionToCSharp.pptIntroductionToCSharp.ppt
IntroductionToCSharp.pptReemaAsker1
 
IntroductionToCSharp.ppt
IntroductionToCSharp.pptIntroductionToCSharp.ppt
IntroductionToCSharp.pptReemaAsker1
 
From Java to Python: beating the Stockholm syndrome
From Java to Python: beating the Stockholm syndromeFrom Java to Python: beating the Stockholm syndrome
From Java to Python: beating the Stockholm syndromeJavier Arias Losada
 
Introduction To Csharp
Introduction To CsharpIntroduction To Csharp
Introduction To Csharpsarfarazali
 
Introduction to c#
Introduction to c#Introduction to c#
Introduction to c#singhadarsh
 

Similar to Classroom Object Oriented Language (COOL) (20)

Modern Compiler Design
Modern Compiler DesignModern Compiler Design
Modern Compiler Design
 
Presentation to java
Presentation  to  javaPresentation  to  java
Presentation to java
 
Java
Java Java
Java
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
 
Oop java
Oop javaOop java
Oop java
 
C# Summer course - Lecture 3
C# Summer course - Lecture 3C# Summer course - Lecture 3
C# Summer course - Lecture 3
 
Intro to Java for C++ Developers
Intro to Java for C++ DevelopersIntro to Java for C++ Developers
Intro to Java for C++ Developers
 
Internet programming slide - java.ppt
Internet programming slide - java.pptInternet programming slide - java.ppt
Internet programming slide - java.ppt
 
Lesson1
Lesson1Lesson1
Lesson1
 
IntroductionToCSharp.ppt
IntroductionToCSharp.pptIntroductionToCSharp.ppt
IntroductionToCSharp.ppt
 
Introduction toc sharp
Introduction toc sharpIntroduction toc sharp
Introduction toc sharp
 
IntroductionToCSharp.ppt
IntroductionToCSharp.pptIntroductionToCSharp.ppt
IntroductionToCSharp.ppt
 
IntroductionToCSharp.ppt
IntroductionToCSharp.pptIntroductionToCSharp.ppt
IntroductionToCSharp.ppt
 
From Java to Python: beating the Stockholm syndrome
From Java to Python: beating the Stockholm syndromeFrom Java to Python: beating the Stockholm syndrome
From Java to Python: beating the Stockholm syndrome
 
Core_java_ppt.ppt
Core_java_ppt.pptCore_java_ppt.ppt
Core_java_ppt.ppt
 
Introduction To Csharp
Introduction To CsharpIntroduction To Csharp
Introduction To Csharp
 
Introduction to c#
Introduction to c#Introduction to c#
Introduction to c#
 

More from S. M. Masoud Sadrnezhaad

استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...
استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...
استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...S. M. Masoud Sadrnezhaad
 
تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...
تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...
تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...S. M. Masoud Sadrnezhaad
 
تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...
تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...
تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...S. M. Masoud Sadrnezhaad
 
سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...
سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...
سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...S. M. Masoud Sadrnezhaad
 
آماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سرایی
آماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سراییآماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سرایی
آماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سراییS. M. Masoud Sadrnezhaad
 
نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...
نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...
نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...S. M. Masoud Sadrnezhaad
 
چارچوب توصیف منبع برای ذخیره و بازیابی معنا
چارچوب توصیف منبع برای ذخیره و بازیابی معناچارچوب توصیف منبع برای ذخیره و بازیابی معنا
چارچوب توصیف منبع برای ذخیره و بازیابی معناS. M. Masoud Sadrnezhaad
 
حوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازمانده
حوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازماندهحوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازمانده
حوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازماندهS. M. Masoud Sadrnezhaad
 
معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...
معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...
معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...S. M. Masoud Sadrnezhaad
 
معرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانی
معرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانیمعرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانی
معرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانیS. M. Masoud Sadrnezhaad
 
بی‌طرفی شبکه و ریشه‌های آن
بی‌طرفی شبکه و ریشه‌های آنبی‌طرفی شبکه و ریشه‌های آن
بی‌طرفی شبکه و ریشه‌های آنS. M. Masoud Sadrnezhaad
 
از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...
از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...
از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...S. M. Masoud Sadrnezhaad
 
طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)
طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)
طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)S. M. Masoud Sadrnezhaad
 
معرفی و آموزش سامانهٔ مدیریت محتوا مزانین
معرفی و آموزش سامانهٔ مدیریت محتوا مزانینمعرفی و آموزش سامانهٔ مدیریت محتوا مزانین
معرفی و آموزش سامانهٔ مدیریت محتوا مزانینS. M. Masoud Sadrnezhaad
 
نقش جامعه و دولت در حمایت از نرم‌افزار آزاد
نقش جامعه و دولت در حمایت از نرم‌افزار آزادنقش جامعه و دولت در حمایت از نرم‌افزار آزاد
نقش جامعه و دولت در حمایت از نرم‌افزار آزادS. M. Masoud Sadrnezhaad
 
بزرگ‌داده؛ مقیاسی از دنیای واقعی
بزرگ‌داده؛ مقیاسی از دنیای واقعیبزرگ‌داده؛ مقیاسی از دنیای واقعی
بزرگ‌داده؛ مقیاسی از دنیای واقعیS. M. Masoud Sadrnezhaad
 

More from S. M. Masoud Sadrnezhaad (20)

Facade Design Pattern
Facade Design PatternFacade Design Pattern
Facade Design Pattern
 
Epistemic Justification
Epistemic JustificationEpistemic Justification
Epistemic Justification
 
استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...
استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...
استفاده از داده‌های تجربی برای پشتیبانی از انتخاب فناوری در تصمیم‌گیری معماری...
 
تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...
تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...
تاریخچه و پیشینهٔ نظری اندازه‌گیری عملکرد و معرفی اجمالی برخی مدل‌های بلوغ و ...
 
تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...
تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...
تحلیل بده‌بستان‌ها میان ویژگی‌های کیفی برای پشتیبانی از تصمیم‌های معماری نرم‌...
 
سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...
سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...
سامانهٔ پشتیبان تصمیم برای شناسایی معماری‌های نامزد و اتخاذ تصمیم‌های معماری ...
 
آماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سرایی
آماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سراییآماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سرایی
آماده‌سازی ذهن برای خلاقیت و ابزار داستان‌سرایی
 
نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...
نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...
نمایش اجرای فرایندهای حرفه به کمک ابزارهای پویانمایی و شبیه‌سازی زمان و هزینه...
 
چارچوب توصیف منبع برای ذخیره و بازیابی معنا
چارچوب توصیف منبع برای ذخیره و بازیابی معناچارچوب توصیف منبع برای ذخیره و بازیابی معنا
چارچوب توصیف منبع برای ذخیره و بازیابی معنا
 
حوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازمانده
حوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازماندهحوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازمانده
حوزه‌های پژوهش در زمینهٔ مهندسی نرم‌افزار سامانه‌های خودتطبیق و خودسازمانده
 
معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...
معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...
معرفی و اجرای سناریوی SWIM در چارچوب Rainbow برای شبیه‌سازی معماری نرم‌افزار ...
 
معرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانی
معرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانیمعرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانی
معرفی و آموزش نحوهٔ استفاده از نرم‌افزار ERPNext برای برنامه‌ریزی منابع سازمانی
 
بی‌طرفی شبکه و ریشه‌های آن
بی‌طرفی شبکه و ریشه‌های آنبی‌طرفی شبکه و ریشه‌های آن
بی‌طرفی شبکه و ریشه‌های آن
 
Git Version Control System Part 2
 Git Version Control System Part 2 Git Version Control System Part 2
Git Version Control System Part 2
 
از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...
از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...
از فرهنگ اجازه تا فرهنگ آزاد یا چگونه رسانه‌ها از تکنولوژی و قانون برای محدود...
 
طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)
طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)
طراحی و معماری خدمات ابری زیرساخت آمازون (AWS)
 
معرفی و آموزش سامانهٔ مدیریت محتوا مزانین
معرفی و آموزش سامانهٔ مدیریت محتوا مزانینمعرفی و آموزش سامانهٔ مدیریت محتوا مزانین
معرفی و آموزش سامانهٔ مدیریت محتوا مزانین
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
 
نقش جامعه و دولت در حمایت از نرم‌افزار آزاد
نقش جامعه و دولت در حمایت از نرم‌افزار آزادنقش جامعه و دولت در حمایت از نرم‌افزار آزاد
نقش جامعه و دولت در حمایت از نرم‌افزار آزاد
 
بزرگ‌داده؛ مقیاسی از دنیای واقعی
بزرگ‌داده؛ مقیاسی از دنیای واقعیبزرگ‌داده؛ مقیاسی از دنیای واقعی
بزرگ‌داده؛ مقیاسی از دنیای واقعی
 

Recently uploaded

Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
SPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementSPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementISPMAIndia
 
AI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriAI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriISPMAIndia
 
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementEmbracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementOnePlan Solutions
 
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...Oleksandr Zaitsev
 
Self scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsSelf scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsBram Vogelaar
 
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)GDSCNiT
 
P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetMatthewTHawley
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!ISPMAIndia
 
Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Asher Sterkin
 
App Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxApp Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxPoojitha B
 
Steps to Build a PWA with Odoo.pdf
Steps to Build a PWA with Odoo.pdfSteps to Build a PWA with Odoo.pdf
Steps to Build a PWA with Odoo.pdfayushinwizards
 
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A..."Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...ISPMAIndia
 
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdfAUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdfAutokey
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkTimothy Spann
 
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ..."Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...ISPMAIndia
 
maximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsmaximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsssuser82c38d
 
Sql server types of joins with example.pptx
Sql server types of joins with example.pptxSql server types of joins with example.pptx
Sql server types of joins with example.pptxsameer gaikwad
 
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이ssuser82c38d
 

Recently uploaded (20)

Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
SPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementSPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product Management
 
Features of IETM Software -Code and Pixels
Features of IETM Software -Code and PixelsFeatures of IETM Software -Code and Pixels
Features of IETM Software -Code and Pixels
 
AI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriAI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit Bendigiri
 
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementEmbracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
 
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
 
Self scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsSelf scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloads
 
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
 
P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 Smartsheet
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!
 
Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024
 
App Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxApp Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptx
 
Steps to Build a PWA with Odoo.pdf
Steps to Build a PWA with Odoo.pdfSteps to Build a PWA with Odoo.pdf
Steps to Build a PWA with Odoo.pdf
 
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A..."Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
 
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdfAUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
AUTOKEYUNLOCKER-BRANDS-SUPPORT-STANDARD-VERSION.pdf
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
 
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ..."Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
"Taking an idea to a Product in Health diagnostics" by Dr. Geetha Manjunath, ...
 
maximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsmaximum subarray ppt for killing camp students
maximum subarray ppt for killing camp students
 
Sql server types of joins with example.pptx
Sql server types of joins with example.pptxSql server types of joins with example.pptx
Sql server types of joins with example.pptx
 
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
 

Classroom Object Oriented Language (COOL)

  • 1. Classroom Object Oriented Language: COOL S. M. M. Sadrnezhaad, R. Yazdanian, S. Karimi
  • 2. Design goals  Taught in compiler course in some universities  Designed to be implementable in a short time (one semester)  Give students an idea of many features of OO languages, including:  Abstraction  Static Typing  Inheritance  Memory management  Simple reflection  Leaves many features out which are common to other languages
  • 3. The not so COOL parts  No arrays  No floating point operations  No “static” modifier  No interfaces  No method overloading (but still allow overriding)  No exceptions  No packages
  • 4. The reference compiler  Built with C++  Generates code for MIPS simulator named SPIM
  • 5. Where does execution start?  A class “Main” must be defined  Containing a no-args “main” method  Starts program execution
  • 6. Expressions  Expression language  every expression has a type and a value  Loops: while E loop E pool  Conditionals: if E then E else E fi  Case statement: case E of x: Type  E; esac  Arithmetic operations  Logical operations  Assignment x  E
  • 7. Basic structure and classes  Basically, a COOL program is a set of classes  Similar to Java  Almost every type is a class (next slide)  Blocks defined using { and }.  Each COOL class has a set of features  Methods  No explicit return  Attributes (variables)
  • 8. Classes and types: continued  Primitive types: Boolean, Int, String  Built-in types: The above, + Null, Nothing, Unit, Any  Every type except Null and Nothing is a class  Int, Boolean, Unit cannot be superclass  “Any” class is the root of class hierarchy  Similar to “Object” in Java  Each type “conforms” to ancestors  “Nothing” conforms to all  “Null” conforms to all but Int, Boolean, Unit  Null and Nothing cannot be superclass (obviously)
  • 9. Information hiding  Attributes only accessed through methods of same class (“Information hiding”)  Methods are global (public)  Getters and Setters necessary  Example class Point { … getx () : Int { x }; setx (newx : Int) : Int { x  newx }; };
  • 10. 18 Inheritance  We can extend points to colored points using subclass (class hierarchy) class ColorPoint inherits Points { color : Int  0; movePoint(newx : Int, newy : Int) : Point { { color  0; x  newx; y  newy; self; } }; }; 0 0 y color * movePoint 0 x
  • 11. Classes: behind the scenes  An instance of a class has pointer to method  All instances of a class point to single instance of method  Example: 0 0 x y * movePointmethods
  • 12. The “new” command  Explicit class Main { i : IO <- new IO; main():Int { i.out_string("Hello World!n"); 1; }; };  Anonymous class Main { main():Object { (new IO).out_string((new IO).in_string().concat("n"))}; };
  • 13. Typing  Static typing: Type defined at variable definition time  Static type inferred at compile time for each expression  Bottom-up  Dynamic, exec time type may differ  But dynamic type “conforms” to static type  Errs on the conservative side  Attributes of classes initialized  Boolean: false, Unit: (), Int: 0  Others: Null
  • 14. Method invocation  Dynamic type may differ from static  Methods invoked instead of calling -> Late binding  Invoked by dispatch  Find class of the instance  Find the method  Eval args  Bind the method and the object  Run method
  • 15. Memory Management: Environment and Store  Environment: Mapping of identifiers to locations  i.e. symbol table  Store: Where the values are stored -> Heap  Looking up a variable’s value:  Look its location up in environment  Look up the value at location in store  When new is invoked  New env. and store created, new identifier added to them  Dynamic allocation w/ Garbage Collector
  • 16. Conclusion  Object oriented  Objects, virtual method calls, but no overloading  Strongly typed  Primitives for int, boolean, string  Reference types  Dynamic allocation and Garbage Collection  Heap allocation, automatic deallocation  Many things are left out  short time implementation
  • 18. Thank you for (if) your attention! :)