Lisp Machine Prunciples

999 views
752 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
999
On SlideShare
0
From Embeds
0
Number of Embeds
71
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Lisp Machine Prunciples

  1. 1. Today's view of the Lisp Machine Vsevolod Dyomkin Most Functional Day 2014
  2. 2. A bit about me * Lisp programmer * Research lead at Grammarly * Teacher at KPI: Operating Systems * Links: http://lisp-univ-etc.blogspot.com http://github.com/vseloved http://twitter.com/vseloved
  3. 3. What is Lisp Machine? * Special hardware environment * Software architecture
  4. 4. Hardware * Data type testing (tagged architecture) * CDR coding support * Run-time array bounds checking * Incremental garbage collection * Single address-space * Support for multiple execution threads (processes)
  5. 5. Software * Open architecture * Intelligence * Extensibility
  6. 6. Genera The rest of the talk is based on: http://lispm.de/genera-concepts
  7. 7. OS Traditional operating systems require the user to interact with a command monitor in order to access applications and the facilities of the operating system. The Lisp Environment, consisting of all the function and data objects in virtual memory. Activities are just collections of functions and data.
  8. 8. Genera basics * Extensible generic operations * Automatic storage (memory) management * Dynamic linking * Generic networking * Single address space for processes * Event-driven scheduler * Program-building assistance
  9. 9. Genera concepts * Data-level integration * Open system * Layered architecture * Support for incremental change * Reusability * Extensibility * "Self-revealing" system
  10. 10. Data-level Integration
  11. 11. Data-level Integration * All functions and data share the same virtual memory * Memory - a set of data objects, not uninterpreted bits or bytes * Each data object contains knowledge of its own type * Programs can communicate with each other via shared data
  12. 12. Open Architecture
  13. 13. Open Architecture * The concept of a world * You can change anything that is part of Genera Ways to use and change Genera: * Use what's there * Use what's almost there (through hooks) * Extend through inheritance/polymorphism * Replace what's there Replacing part of the open system is usually done by bypassing the original
  14. 14. Transparent system * Always available status information * Peek utility * Examiner (static inspection) * Inspector (dynamic inspection) * Always available debugger * Document examiner provides context-sensitive documentation + mouse documentation display
  15. 15. Program-building
  16. 16. Program-building support * Always-available debugger * Database of caller, source, arguments & other program information * Structured view of the source code * SCT configuration manager with dependency management, file versioning, patch management, and distribution generation
  17. 17. Recap * Data-level integration permits the construction of integrated, communicating tools * Reusability permits to start a new project from a much higher base * Open architecture allows to explore an idea as far as your own creativity takes you rather than as far as the Genera developers will let you go
  18. 18. Learn more * Kalman Reti, the Last Symbolics Developer, Speaks of Lisp Machines http://www.loper-os.org/?p=932 * A few things I know about LISP Machines http://fare.tunes.org/LispM.html * LoperOS on Lisp Machines http://www.loper-os.org/?cat=10 * Ergonomics of the Symbolics Lisp Machine - Reflections on the Developer Productivity http://lispm.de/symbolics-lisp-machine-ergo nomics

×