2 resultados para Freed Slaves
em Bucknell University Digital Commons - Pensilvania - USA
Resumo:
While much of Aristotle's works are preserved in various volumes, two of his famous works are the Nichmachean Ethics and the Politics, both of which contain a rich compilation of ethical and political thought. In the Ethics, Aristotle describes a thorough understanding of ethical and intellectual virtue. By pursuing these virtues, Aristotle argues that a person can achieve a life of fulfilling happiness. The ideal polis as described in the Politics serves as a place where the virtuous life is attained in the best manner.Citizens who pursue virtue make the polis better, and the rulers that guide the polis ensure that the citizens have every opportunity to pursue the virtuous life. In this thesis, I see how relevant Aristotle's theory is by laying out the basic principles of the Ethics and the Politics and the connections between the two works. Indoing so, I found that Aristotle's ideal theory points out a significant flaw in our political system: the fact that we do not share a common moral conception such as the one concerned with the virtuous life as Aristotle proposes. This does not suggest thatAristotle's view was actualized during his time period, but that Aristotle conceives of an ideal life and an ideal polis that could be realized. Certainly there are issues with Aristotle's thesis concerning the inferiority of slaves and women. But what is morepoignant is the impracticality of instituting a shared common conception when today's political system permits various ideas about ethics and morality.
Resumo:
This project addresses the unreliability of operating system code, in particular in device drivers. Device driver software is the interface between the operating system and the device's hardware. Device drivers are written in low level code, making them difficult to understand. Almost all device drivers are written in the programming language C which allows for direct manipulation of memory. Due to the complexity of manual movement of data, most mistakes in operating systems occur in device driver code. The programming language Clay can be used to check device driver code at compile-time. Clay does most of its error checking statically to minimize the overhead of run-time checks in order to stay competitive with C's performance time. The Clay compiler can detect a lot more types of errors than the C compiler like buffer overflows, kernel stack overflows, NULL pointer uses, freed memory uses, and aliasing errors. Clay code that successfully compiles is guaranteed to run without failing on errors that Clay can detect. Even though C is unsafe, currently most device drivers are written in it. Not only are device drivers the part of the operating system most likely to fail, they also are the largest part of the operating system. As rewriting every existing device driver in Clay by hand would be impractical, this thesis is part of a project to automate translation of existing drivers from C to Clay. Although C and Clay both allow low level manipulation of data and fill the same niche for developing low level code, they have different syntax, type systems, and paradigms. This paper explores how C can be translated into Clay. It identifies what part of C device drivers cannot be translated into Clay and what information drivers in Clay will require that C cannot provide. It also explains how these translations will occur by explaining how each C structure is represented in the compiler and how these structures are changed to represent a Clay structure.