Exploring Object-Oriented Programming and Abstractions in Technical Computing
Delve into the realms of object-oriented programming, multi-methods, and abstractions in technical computing through various images and descriptions presented in the content. Discover the intersection of mathematics, computer science, and AI labs with a focus on Julia programming language and its applications in computational science. Unravel the art of giving the same name to different things and applying operations to objects representing diverse entities in the realm of technical computing.
- Object-Oriented Programming
- Abstractions
- Technical Computing
- Julia Programming
- Computational Science
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Alan Edelman Mathematics Computer Science & AI Laboratories June 9, 2014 Jeff Bezanson, Stefan Karpinski, Viral Shah and may collaborators worldwide Try Julia/Ijulia today google: julia downloads 8pm room 4
Stereotypes Computer Scientists don t take derivatives but computer scientists are great at abstractions Computational Scientists can t declare types but computational scientists are great at engineering simulations and numerical algorithms 2/30
Object-oriented programming with classes methods objects What can I do with/to a thing? buy top up pay fare class-based OO lose buy classes are more fundamental than methods top up pay fare lose buy pay fare lose 3
Object-oriented programming with multi-methods What can I do with/to a thing? buy multimethods top up relationships between objects and functions pay fare lose methods objects generic function 4
Multi-methods with type hierarchy buy rechargeable subway pass top up subway ticket pay fare single-use subway ticket lose methods objects abstract object generic function is a subtype of 5
Abstractions Poincar quipped: Mathematics is the art of giving the same name to different things. Technical computing is the art of applying operations to objects with the same name that represent different things. -- The Julia Team 6
Multi-methods for linear algebra What can I do with/to a thing? find eigenvalues eigvals general matrix Matrix find eigenvalues and eigenvectors eigfact symmetric tridiagonal matrix SymTridiagonal find singular values svdvals bidiagonal matrix Bidiagonal find singular values and vectors svdfact methods objects generic function Methods can take advantage of special matrix structures 7
The Two Language Problem As long as the developers language is harder than the users language, technical computing will always be hindered 8/30
What might you ask from your language? A whole laundry list of easy to call functions: http://julia.readthedocs.org/en/latest/packages/packag elist/ Performance Can develop libraries Flexibility Parallelism Abstractions Easy to call other languages/unnecessary to call 9/30
Notebooks to demo What is multiple dispatch? iterators Inspired today Parallel Tracy widom Web server Block SVD Fractals Linear Algebra Tutorial The Colors of Chemistry 10/30