SlideShare uma empresa Scribd logo
1 de 16
Java: An Operational Semantics Gaurav  S. Kc B. Eng. Project Department of Computing
Semantics of Java -- why? ,[object Object],[object Object],[object Object],[object Object]
Why? … contd. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Project Goals ,[object Object],[object Object],[object Object]
Break-down into parts ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
An example in the new syntax ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Access Modifiers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Semantics extension ...
Final and Abstract modifier ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Semantics extension ...
Static modifier ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Semantics extension ...
Constructor ,[object Object],[object Object],[object Object],[object Object],[object Object]
Syntax of a Constructor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Constructor execution [boolean] C(true),   [AT] = [boolean] constrBody = []super(); if (b) ... cc = []SuperC(P,C)(); = []B(); [] B(); x=5; if (b) …,   new C(true); I  = (x=5;) Expr
Other research work on Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Other research, … contd. ,[object Object],[object Object],[object Object]
Conclusions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Acknowledgements ,[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Statistical Machine Learning for Text Classification with scikit-learn and NLTK
Statistical Machine Learning for Text Classification with scikit-learn and NLTKStatistical Machine Learning for Text Classification with scikit-learn and NLTK
Statistical Machine Learning for Text Classification with scikit-learn and NLTK
Olivier Grisel
 

Mais procurados (20)

Dynamic Memory Allocation(DMA)
Dynamic Memory Allocation(DMA)Dynamic Memory Allocation(DMA)
Dynamic Memory Allocation(DMA)
 
Scikit-Learn: Machine Learning in Python
Scikit-Learn: Machine Learning in PythonScikit-Learn: Machine Learning in Python
Scikit-Learn: Machine Learning in Python
 
TensorFlow example for AI Ukraine2016
TensorFlow example  for AI Ukraine2016TensorFlow example  for AI Ukraine2016
TensorFlow example for AI Ukraine2016
 
Statistical Machine Learning for Text Classification with scikit-learn and NLTK
Statistical Machine Learning for Text Classification with scikit-learn and NLTKStatistical Machine Learning for Text Classification with scikit-learn and NLTK
Statistical Machine Learning for Text Classification with scikit-learn and NLTK
 
Attention mechanisms with tensorflow
Attention mechanisms with tensorflowAttention mechanisms with tensorflow
Attention mechanisms with tensorflow
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSEL
 
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
4Developers 2018: Ile (nie) wiesz o strukturach w .NET (Łukasz Pyrzyk)
 
C++ tutorial boost – 2013
C++ tutorial   boost – 2013C++ tutorial   boost – 2013
C++ tutorial boost – 2013
 
Dynamic Memory Allocation
Dynamic Memory AllocationDynamic Memory Allocation
Dynamic Memory Allocation
 
TensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow HubTensorFlow.Data 및 TensorFlow Hub
TensorFlow.Data 및 TensorFlow Hub
 
A Survey of Concurrency Constructs
A Survey of Concurrency ConstructsA Survey of Concurrency Constructs
A Survey of Concurrency Constructs
 
Jvm profiling under the hood
Jvm profiling under the hoodJvm profiling under the hood
Jvm profiling under the hood
 
Dynamic memory Allocation in c language
Dynamic memory Allocation in c languageDynamic memory Allocation in c language
Dynamic memory Allocation in c language
 
Functional Programming You Already Know
Functional Programming You Already KnowFunctional Programming You Already Know
Functional Programming You Already Know
 
Machine Learning in R
Machine Learning in RMachine Learning in R
Machine Learning in R
 
Software Abstractions for Parallel Hardware
Software Abstractions for Parallel HardwareSoftware Abstractions for Parallel Hardware
Software Abstractions for Parallel Hardware
 
Cut and Goal on prolog
Cut and Goal on prologCut and Goal on prolog
Cut and Goal on prolog
 
Refactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech Talk Refactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech Talk
 
(Costless) Software Abstractions for Parallel Architectures
(Costless) Software Abstractions for Parallel Architectures(Costless) Software Abstractions for Parallel Architectures
(Costless) Software Abstractions for Parallel Architectures
 
DSL简介
DSL简介DSL简介
DSL简介
 

Destaque

Загородня_Клініко-статистичний аналіз ПП
Загородня_Клініко-статистичний аналіз ППЗагородня_Клініко-статистичний аналіз ПП
Загородня_Клініко-статистичний аналіз ПП
Medprosvita
 
5 а класс
5 а класс5 а класс
5 а класс
Comp_klass
 
образовательные программы дпо
образовательные программы дпообразовательные программы дпо
образовательные программы дпо
Anastasia Zybina
 
Milk safety workshop
Milk safety workshopMilk safety workshop
Milk safety workshop
noonii
 
интерактивная викторина
интерактивная викторинаинтерактивная викторина
интерактивная викторина
nn-nn-nn
 
Бизнес-информатика
Бизнес-информатикаБизнес-информатика
Бизнес-информатика
iefmiit
 
танец общение-личность
танец общение-личностьтанец общение-личность
танец общение-личность
hrclubug
 
умняшова, вихристюк фпор 10.04.14
умняшова, вихристюк фпор 10.04.14умняшова, вихристюк фпор 10.04.14
умняшова, вихристюк фпор 10.04.14
sodrugestvo
 

Destaque (20)

Presentation ss 2013 (1)
Presentation ss  2013 (1)Presentation ss  2013 (1)
Presentation ss 2013 (1)
 
Загородня_Клініко-статистичний аналіз ПП
Загородня_Клініко-статистичний аналіз ППЗагородня_Клініко-статистичний аналіз ПП
Загородня_Клініко-статистичний аналіз ПП
 
аутсорсинг
аутсорсингаутсорсинг
аутсорсинг
 
2 новинская 2011_анализ внедрения ат_20120314
2 новинская 2011_анализ внедрения ат_201203142 новинская 2011_анализ внедрения ат_20120314
2 новинская 2011_анализ внедрения ат_20120314
 
Паспорт подпрограммы "Реструктуризация и стимулирование развития промышленнос...
Паспорт подпрограммы "Реструктуризация и стимулирование развития промышленнос...Паспорт подпрограммы "Реструктуризация и стимулирование развития промышленнос...
Паспорт подпрограммы "Реструктуризация и стимулирование развития промышленнос...
 
Digital Branding: Ретроспектива и Перспективы от Спонсоров Будущего
Digital Branding: Ретроспектива и Перспективы от Спонсоров БудущегоDigital Branding: Ретроспектива и Перспективы от Спонсоров Будущего
Digital Branding: Ретроспектива и Перспективы от Спонсоров Будущего
 
Re conn
Re connRe conn
Re conn
 
Листая страницы истории
Листая страницы историиЛистая страницы истории
Листая страницы истории
 
NewMow Lawn Mowing In NYC
NewMow Lawn Mowing In NYCNewMow Lawn Mowing In NYC
NewMow Lawn Mowing In NYC
 
Equipo de trabajo
Equipo de trabajoEquipo de trabajo
Equipo de trabajo
 
5 а класс
5 а класс5 а класс
5 а класс
 
образовательные программы дпо
образовательные программы дпообразовательные программы дпо
образовательные программы дпо
 
Milk safety workshop
Milk safety workshopMilk safety workshop
Milk safety workshop
 
интерактивная викторина
интерактивная викторинаинтерактивная викторина
интерактивная викторина
 
Бизнес-информатика
Бизнес-информатикаБизнес-информатика
Бизнес-информатика
 
танец общение-личность
танец общение-личностьтанец общение-личность
танец общение-личность
 
Presentation
PresentationPresentation
Presentation
 
умняшова, вихристюк фпор 10.04.14
умняшова, вихристюк фпор 10.04.14умняшова, вихристюк фпор 10.04.14
умняшова, вихристюк фпор 10.04.14
 
профилактика дислексии
профилактика дислексиипрофилактика дислексии
профилактика дислексии
 
LinkedIn - Tips, Triks og tanker om fremtiden
LinkedIn - Tips, Triks og tanker om fremtidenLinkedIn - Tips, Triks og tanker om fremtiden
LinkedIn - Tips, Triks og tanker om fremtiden
 

Semelhante a Java Semantics

Advance java kvr -satya
Advance java  kvr -satyaAdvance java  kvr -satya
Advance java kvr -satya
Satya Johnny
 
A Sceptical Guide to Functional Programming
A Sceptical Guide to Functional ProgrammingA Sceptical Guide to Functional Programming
A Sceptical Guide to Functional Programming
Garth Gilmour
 
Topic2JavaBasics.ppt
Topic2JavaBasics.pptTopic2JavaBasics.ppt
Topic2JavaBasics.ppt
MENACE4
 
Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010
Andres Almiray
 

Semelhante a Java Semantics (20)

Oop java
Oop javaOop java
Oop java
 
11.Object Oriented Programming.pdf
11.Object Oriented Programming.pdf11.Object Oriented Programming.pdf
11.Object Oriented Programming.pdf
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
Adv kvr -satya
Adv  kvr -satyaAdv  kvr -satya
Adv kvr -satya
 
Advance java kvr -satya
Advance java  kvr -satyaAdvance java  kvr -satya
Advance java kvr -satya
 
First fare 2010 java-introduction
First fare 2010 java-introductionFirst fare 2010 java-introduction
First fare 2010 java-introduction
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
 
Advanced java jee material by KV Rao sir
Advanced java jee material by KV Rao sirAdvanced java jee material by KV Rao sir
Advanced java jee material by KV Rao sir
 
Introduction to java programming part 2
Introduction to java programming  part 2Introduction to java programming  part 2
Introduction to java programming part 2
 
11slide
11slide11slide
11slide
 
A Sceptical Guide to Functional Programming
A Sceptical Guide to Functional ProgrammingA Sceptical Guide to Functional Programming
A Sceptical Guide to Functional Programming
 
Machine-level Composition of Modularized Crosscutting Concerns
Machine-level Composition of Modularized Crosscutting ConcernsMachine-level Composition of Modularized Crosscutting Concerns
Machine-level Composition of Modularized Crosscutting Concerns
 
11slide.ppt
11slide.ppt11slide.ppt
11slide.ppt
 
Top 20 java programming interview questions for sdet
Top 20 java programming interview questions for sdetTop 20 java programming interview questions for sdet
Top 20 java programming interview questions for sdet
 
Topic2JavaBasics.ppt
Topic2JavaBasics.pptTopic2JavaBasics.ppt
Topic2JavaBasics.ppt
 
hallleuah_java.ppt
hallleuah_java.ppthallleuah_java.ppt
hallleuah_java.ppt
 
2.ppt
2.ppt2.ppt
2.ppt
 
Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010
 
Object-oriented Basics
Object-oriented BasicsObject-oriented Basics
Object-oriented Basics
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Java Semantics

  • 1. Java: An Operational Semantics Gaurav S. Kc B. Eng. Project Department of Computing
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. Constructor execution [boolean] C(true),  [AT] = [boolean] constrBody = []super(); if (b) ... cc = []SuperC(P,C)(); = []B(); [] B(); x=5; if (b) …,  new C(true); I = (x=5;) Expr
  • 13.
  • 14.
  • 15.
  • 16.

Notas do Editor

  1. My research project was on the semantics of Java. Got email link … and these slides will also be available on the web along with report.
  2. Semantics definition Definition of Java given by Sun, where it was developed. Just how robust and secure is it? Not very, so there’s so much research in the field.
  3. Studying the semantics of any prog. lang. Helps to get a better grasp of how programs written in the language actually execute For any prog lang, public acceptance is heavily dependent on it being reliable, more importantly for mission-critical projects where unexpected behaviour could be very detrimental Java is a very versatile general programming language. There’s virtually nothing that cannot be done with Java yet can be done with some other imperative programming language. However, to some extent, this functionality might come at a cost of the security of the systems involved and a trade-off involving a lot less functionality is often necessary. Even so, Java has already come into widespread use, and its here to stay. Research in Java is so often done with the intention of determining feasible compromises with maximum functionality while maintaining adequate security.
  4. Sophia and Susan developed a semantics for a substantial subset of Java. Java is still growing, and we felt the need to expand this subset as well to keep up with Java. Since my project was mainly theoretical, I have no software product to demonstrate. I hope those of you that didn’t know this will not be disappointed!
  5. What we had before: Java is class-based, class has members which can be inherited by child-classes. Access mod: use to control the degree of accessibility of classes/interfaces, their members and constructors from other objects Other modifiers: final, abstract: class; final static: field; abstract final: method Constructors: the most interesting part of the project
  6. Red: depicts Java features that can now be studied using the semantics
  7. Public: accessible everywhere where the class is accessible Protected: accessible in subclasses Private: inaccessible from any other class default: package access … not dealt with packages due to time constraints CHECKING: required to see fields, methods, constructors are accessible
  8. Final class: implementation is complete, and shouldn’t be subclassed Abstract class: insufficient information for instantiation, so defer partial implementation to be completed in subclasses Final field: cannot change value .. compares with constants in other languages definitions are well formed if a class does not try to subclass a final classs or an constructor is not invoked to create an abstract class check if assignment is attempted on a field declared final
  9. Static fields: no more only instance fields Classes and interfaces have fields … shared between all instances In the SCDSE semantics, the runtime system could only store arrays and objects, now this system has been extended for Classes and interfaces, and these too can be referenced like normal objects … too technical
  10. Has to determine all declared and inherited instance fields if out of memory, must exit and report error initialise static fields
  11. Explicit can be: this or super if this, has statements if super, has initialisation before statements
  12. We have “new C(true)”; compiled to [bool]C(true) looking at rewrite rule for constructor invocation, arg type AT is [boolean] use AT to determine most specific constructor in class in the mostspec constructor, explicit turned to be super replace that by SuperC(P,C)() which is B() determine initialisers that must be taken into consideration for class C only one … x = 5; so InitExpr is simple so eventually, the whole term is rewritten to a sequence of statements
  13. Java entices a lot of programmers and researchers Even within IC, we have people in Distributed Software Engineering … and there are others in universities and research institutions like: people trying best way of extending Java: generics types to Java (Programming Language Techniques) people trying to find and eradicate loopholes in the Java security system Secure Internet Programming have discovered many important flaws in the Java and Netscape Navigator Java Virtual Machine systems.
  14. I’m happy to have managed to work reasonably well in this project and get some results. There are a lot more qualified people working on similar things.
  15. * 2-3 weeks spent on access modifiers for instance fields * anticipated same amount of time for methods and constructors, turned out that my rules for the fields were equally well-suited for methods and constructors * formalising the constructor rules is the most interesting part of the project for me … because this is a completely new entry in the semantics. * Skills learned: used LaTeX for report writeup … will be useful in later research work coz it’s the choice of the academics must have improved my creativity after designing semantic rules for a wide variety of test cases * is a new thing-- no one has succeeded in completely formalising Java semantics … is at the forefront of technology! Is something novel. * I hope someone in Doc will take what I’ve done and continue from there because this is a very interesting field. Most people don’t realise that studying semantics helps improve the understanding of programming language systems and is as equally important as understanding how hardware actually executes machine code. * Most important part of the project must be fact that I know a lot more about Java systems than before I started the project.
  16. KB - second marker -- UROP supervisor 98 … SCD - supervisor + lots of help with semantics and other things tanya - whose work was invaluable in writing my report