Sumant Kowshik

Learn More
Static analysis of programs in weakly typed languages such as C and C++ is generally not sound because of possible memory errors due to dangling pointer references, uninitialized pointers, and array bounds overflow. We describe a compilation strategy for standard C programs that guarantees that aggressive interprocedural pointer analysis (or less precise(More)
Traditional approaches to enforcing memory safety of programs rely heavily on runtime checks of memory accesses and on garbage collection, both of which are unattractive for embedded applications. The long-term goal of our work is to enable 100% static enforcement of memory safety for embedded programs through advanced compiler techniques and minimal(More)
This paper considers the problem of providing safe programming support and enabling secure online software upgrades for control software in real-time control systems. In such systems, offline techniques for ensuring code safety are greatly preferable to online techniques. We propose a language called Control-C that is essentially a subset of C, but with key(More)
Traditional approaches to enforcing memory safety of programs rely heavily on run-time checks of memory accesses and on garbage collection, both of which are unattractive for embedded applications. The goal of our work is to develop advanced compiler techniques for enforcing memory safety with minimal run-time overheads. In this paper, we describe a set of(More)
Embedded control systems consist of multiple components with different criticality levels interacting with each other. For example, in a passenger jet, the navigation system interacts with the passenger entertainment system in providing passengers the distance-to-destination information. It is imperative that failures in the non-critical subsystem should(More)
Large scale real-time systems consist of hundreds of commercial off-the-shelf (COTS) and custom software components. Mismatched assumptions between software components are a prime source of failures in these systems. Further, component assumptions are often implicit due to the limitations of current software interfaces. In this work, we introduce a(More)
Traditional control systems consist of sensors, controllers, and actuators operating with tight periodic dependencies, and communicating over dedicated real-time channels such as CAN or FDDI. However, best effort networks such as 802.11 are being increasingly used in such systems. The unpredictable delays and losses in such networks violate the periodicity(More)
We propose PRECIS, a methodology for automatically generating invariants at function and loop boundaries through program path guided clustering. We instrument function inputs and outputs together with predicates for branch conditions and record their values during each execution. Program runs that share the same path are grouped together based on predicate(More)
c dfeAgPhjikhmlAnbeIopeIqbq dklCeRrtsPuwvxiklyuwn z{lIdkr h|nP}~ uw~ lId[€-vkeRz{utiV€lIz‚q dklIƒ }RdfeI~ v„dkuwoj€…sPu;e;† hmoj€…lAn6dk‡bnEikhm~ u/rtsPuwrtˆWv„lRzx~ uw~ lRd[€‰eIr rwuwv[v[uwv eRnŠg‹lAn8}CeRdkŒbeI}Iu+rwlAomomuwr ikhmlInLEŒŽlRiks8lRzb sbhmrfs3e$dku+‡bnbeRi[i[dfeRr ikhm†Cu zlId u ~3ŒŽu;gPgPu;g‘eIqPqbomhmr;eRikhmlInbvw’/c+sPu3omlAnP}IƒNiku(More)