How low can safe languages go?
- Chris Hawblitzel | Cornell
Safe languages try to increase software reliability and security by checking for errors at compile time and run time. For example, Java and C# check types (mostly at compile time) and check array bounds (usually at run time). Unfortunately, these safety checks restrict the operations that a program can perform. Typical safe programs cannot explicitly free memory, cannot change the types of allocated data after allocation, cannot read and write to memory-mapped I/O addresses and I/O ports, cannot initiate DMA, and have limited control over how words are arranged in memory. As a result, most safe languages rely on run-time system code and operating system code, written in unsafe languages, to mediate access to low-level resources like devices and memory words. To alleviate these restrictions, we have developed a safe language called Clay, which uses polymorphic types, linear types, arithmetic types, and delayed types to give safe code flexible and efficient access to low-level resources. This talk will describe experiences developing low-level systems, including garbage collectors and device drivers, in Clay.
Speaker Details
Chris Hawblitzel was an assistant professor in computer science at Dartmouth from 2000 to 2004. He received his Ph.D. at Cornell University in 2000
-
-
Chris Hawblitzel
Senior Principal Researcher
-
Jeff Running
-
Watch Next
-
-
-
Accelerating MRI image reconstruction with Tyger
- Karen Easterbrook,
- Ilyana Rosenberg
-
-
-
-
From Microfarms to the Moon: A Teen Innovator’s Journey in Robotics
- Pranav Kumar Redlapalli
-
-
-