Tuesday, January 28, 2020

The C Programming Language And Its History

The C Programming Language And Its History Introduction In this Assignment, I shall be going through the stages and milestones, which lead to the development of two successful programming languages, C++ and Java. The programming language C influenced greatly C++, and therefore I felt it was necessary to delve deeply in this programming language as well. This assignment also includes the decisions taken by their respective creators and the reasoning behind them. The C Programming Language Between 1969 and 1973, the programming language C was under development at Bell Labs, by Dennis Ritchie. [1] During the same period, the operating system UNIX was under development as well.[1] In this section, I make most of my references to texts written by Dennis Ritchie himself in the book â€Å"History of Programming Languages†.[2] Prehistory Before C, during the late 60s, Bell Labs were passing through difficult times, mainly due to the fact that the development of the Multics project was halted because the beneficial use of the GE-645 Multics machine would not be available on time and would be too costly.[4] However, during and after the disposal of the machine, an â€Å"informal team†, lead by Ken Thompson, began to research and develop other alternatives.[4] Ken Thompson aimed in constructing a comfortable work environment by using any resources available to him.[4] His design involved implementing some similar ideas of Multics, such as â€Å"an explicit notion of a process as a locus of control, a tree-structured file system, a command interpreter as a user-level program, simple representation of text files, and generalized access to devices.†[4] However, Ken Thompson also excluded other certain aspects, including â€Å"unified access to memory and to files†.[4] Furthermore, instead of using PL/I which was the implementation language of Multics, Thompson and his team used another programming language known as BCPL.[4] Just like PL/I, BCPL was also a high-level language; a great advantage which Thompson did not want to let go due to its clarity and simplicity, unlike assembly language.[4] The B Programming Language In 1968, Ken Thompson was faced with a problem with the PDP-7, a machine for which he had no compatible software available.[4] Ken Thompson then created his own PDP-7 assembler, but it was in 1969, that Doug Mcllroy created the first high-level language for the system.[4] This language was an adaptation of the programming language known as TMG, which was created for the PDP-7 by R. M. McClure.[4] Dennis Ritchie describes TMG as â€Å"a language for writing compilers (more generally, TransMoGrifiers) in a top-down, recursive-descent style that combines context-free syntax notation with procedural elements†.[4] TMG had been used to create the compiler of PLI for Multics.[4] Ken Thompson then felt it was necessary for UNIX to have its own system programming language.[4] After a reluctant effort to use FORTRAN, Thompson later designed a new programming language named B.[4] The B programming language was developed mainly based on BCPL.[4] Moreover, Dennis Ritchie describes B as â⠂¬Å"BCPL squeezed into 8K bytes of memory and filtered through Thompsons brain†.[4] He then mentions that most probably, its name came about by representing a â€Å"contraction† of BCPL.[4] However, he might have chosen it as a dedication to his wife Bonnie.[4] Development was first completed by creating a TMG version of B, where Thompson then rewrote B in itself.[6] Dennis Ritchie recalls that during this stage of development, Ken Thompson found the memory limitation to be a great challenge, as â€Å"each language addition inflated the compiler to barely fit†.[6] However, each re-write, due to the beneficial feature, â€Å"reduced its size†.[6] Dennis Ritchie continues by mentioning an example.[6] He stated that, originally coming from ALGOL 60, B generalized assignment operators such that x =+ y was used to add x to y.[6] The operator was then corrected to spell x += y back in 1976.[6] Thompson was more innovative as he created new operators such as ++ and to increment and decrement.[6] The position of these operators, written as postfix or prefix, would determine whether the change in value would â€Å"occur before or after noting the value of the operand†.[6] Instead of producing machine code, the PDP-7s B compiler generated â€Å"threaded code†, in which the compilers output was made up â€Å"of a sequence of addresses of code fragments that perform the elementary operations†.[6] In the case for B, these operations worked on a straightforward stack.[6] However, due to the fact the PDP-7 machine was too small and slow, not much was written using B, â€Å"except for B itself†.[6] It only served them for experimental use. Re-writing UNIX on this machine proved to be too much of an expensive step.[6] Furthermore, Dennis Ritchie reports that at a stage, Ken Thompson expressed the â€Å"address space crunch by offering a virtual B† which made it possible for the interpreted program to take up more than 8k bytes.[6] This was done by â€Å"paging the code and data within the interpreter†.[6] However, it was then concluded that it would not be feasible enough and would result in being too slow â€Å"for the common utilities†.[6] Despite all this, some utilities were still written in B, such as an early version of the variable precision calculator known as dc.[6] Around this time, Dennis Ritchie also recalls working on an â€Å"ambitious† project, which mainly involved creating a genuine cross-compiler capable translating B to GE-635 machine instruction instead of thread code.[6] Dennis Ritchie then comments that this task was only possible due to the practicality and ease of the B language.[6] The Unix project had proven itself so well, that they managed to get a PDP-11 at Bell Labs.[6] By using the â€Å"the threaded technique† in order to run programs written in B on this machine, it was only necessary to write â€Å"the code fragments for the operators, and a simple assembler† in which the latter, Dennis Ritchie created himself.[6] The â€Å"first interesting program† to be tested on the PDP-11, before any operating system software, was dc.[6] Furthermore, around the same time, Ken Thompson managed to record the â€Å"UNIX kernel†, along with some simple commands written in PDP-11 assembly language.[6] Later in his paper, Dennis Ritchie mentions that apart from Bs advantage regarding its simplicity, it also had its problems mainly related to the PDP-11.[7] He states that the machines, on which Bell Labs initially used BCPL and also B, were â€Å"word-addressed†.[7] Furthermore, he continues by stating that these languages only handled one single data type, known as the â€Å"cell†, which would simply be â€Å"equated with the hardware machine word†.[7] However, with the introduction of the PDP-11, a manifold of â€Å"inadequacies of Bs semantic model† were clearly visible, one of which was that its character-handling mechanisms tracking back to few changes from BCPL, were incompetent.[7] For instance, Dennis Ritchie mentions that â€Å"using library procedures to spread packed strings into individual cells and then repack, or to access and replace individual characters† did feel strange and at times â€Å"even silly†, on a machine based on bytes.[7] Despite that the first model of the PDP-11 was not capable of calculating floating-point arithmetic, the producer did affirm that this feature would be available shortly.[7] By defining special operators, floating-point operators were added to BCPL in their Multics and GCOS compilers.[7] However, these operators were only possible on certain machines where â€Å"a single word was large enough to contain a floating-point number† and therefore could not be used on the 16-it PDP-11.[7] Another inadequacy was that B and BCPL suffered from overhead due to pointers.[7] This was because the languages basis, â€Å"by defining a pointer as an index in an array of words†, restricted pointers to be represented as â€Å"word indices†.[7] For each pointer reference, it generated â€Å"a run-time scale conversion† from the pointer to the corresponding byte address intended by the hardware.[7] Due to all of these reasons, Dennis Ritchie realised that it was necessary to develop a â€Å"typing scheme† to be able to handle characters and byte addressing, and also be prepared to work with the â€Å"coming floating-point hardware†.[7] At first, type safety and interface checking was not considered to be vital and therefore were introduced at a later date.[7] Besides the issues with the B language, B compilers threaded-code technique made programs run slower than the same programs written in assembly language.[7] NB and C In 1971, Dennis Ritchie started to expand the B language and called â€Å"the slightly extended language NB, for new B†.[7] Dennis Ritchie also states that since NB was used for a very short period, no documentation was done.[8] He continues by mentioning that he added a character type and also developed its compiler to produce PDP-11 machine code instructions.[8] Therefore, the compiler was capable of converting programs fast and small enough to contest with assembly language.[8] All in all, NB offered the simple types ‘int and ‘char, arrays of them, and also pointers to them.[8] The semantics of arrays found in B and BCPL stayed the same.[8] Furthermore, inside procedures, the language interpreted pointers and array variables to be identical.[8] Ritchie explains that â€Å"a pointer declaration created a cell differing from an array declaration only in that the programmer was expected to assign a referent, instead of letting the compiler allocate the space and i nitialise the cell†.[8] The values that were held in cells, linked by â€Å"array and pointer names†, were bytes of machine addresses relating to their respective memory location.[8] This was beneficial, as an â€Å"indirection† through a pointer required no â€Å"run-time overhead† to form the pointer from a word to â€Å"byte offset†.[8] However, the machine code for â€Å"array subscripting† and â€Å"pointer arithmetic† was dependant on the actual type of the array or pointer.[8] Dennis Ritchie states that although these semantics made it very easy to transition from B, problems eventually began cropping up mainly when he tried to â€Å"extend the type notation†.[8] He continues by explaining his difficulty in implementing â€Å"structured (record) types†.[8] At first, it seemed structures should link correspondingly onto memory in the machine.[8] However, the major issue was that for a structure containing an array, there was no ideal location to store the pointer containing the base of the array, or a practical way to initialise it. [8] The goal of Dennis Ritchie was that a structure would not just â€Å"characterise† an abstract object but also â€Å"describe a collection of bits that might be read from a directory†.[8] He describes the solution in achieving this goal as â€Å"the crucial jump in the evolutionary chain between type-less BCPL and typed C†.[8] Rather then having a â€Å"materialization of the pointer† located in memory, the pointer would be created only when the array name is refereed to in an expression.[8] Moreover, values of type array, once mentioned in an expression, would change its values to pointers to direct to the objects making up the array.[8] Despite the fact that the semantics of this new language had shiftily changed, most code written in B could still be used. Furthermore, this language also differed from its predecessors as it offered a â€Å"comprehensive type structure† and â€Å"expression in the syntax of declaration†.[8] After creating the â€Å"type system, the associated syntax, and the compiler†, Dennis Ritchie believed that this language deserved its own name, as when compared to NB, they were very distinctive.[8] Therefore, he called the programming Language C, â€Å" leaving open the question whether the name represented a progression through the alphabet or through the letters in BCPL†.[8] UNIX benefited greatly due to C. It made improving and maintaining UNIX very easy for any programmer who had an understanding of C. [1] Furthermore, it also made UNIX easily portable for newly developed computers. [1] This is mainly because it was unnecessary to convert the operating system to assemble language manually, but only required a C assembly compiler for that particular machine. [1] This compiler translates the code into machine code that the device understands. [1] C has gained a huge amount of success over the years and is still presently used in development. It is mainly known for its fast speed. [1] The C++ Programming Language The book â€Å"History of Programming Languages† also contains a paper written by Bjarne Stroustrup, the creator of C++.[9] In this paper, he narrates the history of the C++ programming language, focusing more on the ideas, limitation and â€Å"people that shaped the language†.[9] Prehistory More or less, Stroustrup begins his paper by stating that C++ was based on an â€Å"earlier version† of a programming language known as C with Classes.[10] However, before going into further detail, he begins discussing the prehistory of all this.[10] At Cambridge University, whilst working on his Ph.D that dealt with the study of different methods regarding the organization of software for a distributed system, Stroustrup focused on developing software â€Å"out of well-delimited modules† and also created experimental simulator â€Å"tool† in order to simulate â€Å"software running on a distributed system†.[10] This first version of the simulator was developed in Simula and ran on the Universitys IBM 360/165 mainframe.[10] It was very beneficial for Bjarne Stroustrup to use Simula, stating that: â€Å"the features of Simula were almost ideal for the purpose and I was particularly impressed by the way the concepts of the language helped me think about the problems in my application†.[10] Particularly, the behaviour of classes allowed Stroustrup to link directly the application of his ideas to the language constructs easily, especially due to the fact that classes in Simula are able to behave as co-routines.[10] He states that the use of class hierarchies enabled him to declare â€Å"variants of application level concepts†.[10] He continues by explaining further, through an example, that different types could be described as classes deriving from other classes.[10] The following are his exact words: â€Å"For example, different types of computers could be expressed as classes derived from class computer and different types of intermodule communication mechanisms could be expressed as class es derived from class IPC†.[10] Other benefits of Simula were its type scheme and the ability to detect type errors through its compiler.[10] The detection of a type error was either caused by some â€Å"silly† mistake, or due to some â€Å"conceptual flaw† in the design, in which both cases, especially the latter, helped Stroustrup greatly.[10] He had not experienced such beneficial use with other â€Å"more primitive strong type systems†.[10] Furthermore, referring to his simulator, when the program increased in size, due to Simulas class, co-routine and precise type checking mechanisms, flaws and errors would not grow alongside.[10] On the other hand, the implementation of Simula did not â€Å"scale in the same way† and nearly resulted in creating a disastrous program.[10] Stroustrup concluded that Simula was ideal for writing small programs but suffered â€Å"inherently† for larger ones due to its poor run-time performance characteristics.[10] Today, Simula implementations have improved greatly, but at that time, in order to avoid terminating the project, Stroustrup rewrote the simulator in BCPL.[10] He found programming in BCPL a very â€Å"horrible† experience, mainly due to its lack of type checking and run-time help.[10] However, once the simulator was developed, the program ran competitively fast.[10] Once he graduated from Cambridge, Bjarne Stroustrup promised himself that he would never attempt to solve a problem with those impractical tools as he had â€Å"suffered while designing and implementing the simulator†.[10] However he did define what is a â€Å"suitable tool† for writing system programs, which was highly significant when he was developing C++. [10] In Stroustrups eyes, a â€Å"suitable tool† involved the following characteristics.[10] Firstly, it would have Simulas support for program organisation and thus include classes, the ability to form class hierarchies, concurrency mechanisms, and a good type-checking scheme relating to classes.[10] Secondly, it must also be capable of producing programs possessing similar speed as to BCPL programs, and also allow the combination of independently compiled units into a program.[10] Lastly, it must allow the ability to create highly portable implementations.[10] C with Classes The undertaking, which eventually lead to developing C++, began in 1979, when Bjarne Stroustrup tried to understand the UNIX kernel, in order to find out the limit that could be distributed over a network of computer via a local area network (LAN).[11] This work took place in the Computer Science Research Center of Bell Laboratories.[11] With little time, Stroustrup faced two sub-problems, namely, â€Å"how to analyse the network traffic that would result from the kernel distribution and how to modularize the kernel†.[11] They both required a way to describe the model structure of a complicated system and the communication trends of the modules, issues extremely similar to the kind that Stroustrup was eager to never have to face again without the suitable tools.[11] Therefore, by referring to the criteria he had stated upon leaving Cambridge, Bjarne Stroustrup began to develop his own suitable tool.[11] By October of 1979, he had a preprocessor called Cpre. [11] Cpre was able to add â€Å"Simula-like classes to C†, and in March of 1980 this processor had been upgraded to actually support one â€Å"real project and several experiments†.[11] Later that year, between April and October, Stroustrup mentions that he let go of the ideal of â€Å"thinking about a tool† but rather began â€Å"thinking about a language†, to develop what is known as C with Classes.[11] However, initially, he did not consider C with Classes to be an independent language but just an expansion to C for â€Å"expressing modularity and concurrency†.[11] C with classes did not support primitives for expression.[11] Instead it included a mix of inheritance and offered a way to define class member functions with â€Å"special meanings† understood by the preprocessor, which was used to develop the library that handled the required â€Å"styles† of concurrency. Stroustrup emphasises on the word â€Å"styles† and that it is written in plural.[11] He found it vital that numerous notations of concurrency are able to be expressed in the language.[11] Backed by colleagues, other C++ users and the C++ standards committee, to this day he still believes that this was the right decision.[11] He then continues on this topic by stating that there in â€Å"no one dominant model for concurrency support†, and making use of a library or a special purpose extension for support on a particular form of concurrency would not limit others in using different forms.[11] Therefore, â€Å"the language provided general mechanisms for organising programs rather than support for specific application areas†.[11] It was not only in this instance that Bjarne Stroustrup did not force programmers to use a particular style.[11] C is capable of computing numerous low-level operations, such as bit manipulation and choosing between different sizes of integers.[11] Furthermore, although C++ systematically eliminates the need to use such low-level operators due to safety, they are still available for programmers to use, as Bjarne Stroustrup did not wish to restrict them in any way.[11] In fact, quoting his exact words, he states â€Å"I strongly felt then, as I still do, that there is no one right way of writing every program, and a language designer has no business trying to force programmers to use a particular style.[11] The language designer does, on the other hand, have an obligation to encourage and support a variety of styles and practices that have proven effective and to provide language features and tools to help programmers avoid the well known traps and pitfalls†.[11] Bjarne Stroustrup continues his paper by explaining further the features available to C with class, a language considered to be a stepping stone in creating C++.[11] C with Classes does not differ greatly compared to C.[11] Due to the fact that a preprocessor was used to implement C with Classes, the language differs only in the newly added features.[11] He lists these features which are shown as below. Note that the last three features were implemented in 1981, whilst the others were implemented one year earlier.[11] â€Å"classes†[11] â€Å"derived classes†[11] â€Å"public/private access control†[11] â€Å"constructors and destructors†[11] â€Å"call and Return functions†[11] â€Å"friend Classes†[11] â€Å"type Checking and Conversion of Function arguments†[11] â€Å"inline functions†[11] â€Å"default arguments†[11] â€Å"overloading of the assignment operator†[11] One of the major features offered by C with Classes was the idea of classes.[12] Stroustrup describes a class as a â€Å"user-defined data type†, meaning that it is a custom data type created by the programmer.[12] He continues by stating that â€Å"a class specifies the type of the class members that define the representation of a variable of the type, specifies the set of operations that manipulate such objects and specifies the access users have to these members†.[12] In other words, it simply defines the attributes and methods of a data type, including their access rights.[12] At that time, Simula did not support local or global variables of class types, and therefore objects of classes had to be â€Å"allocated on the free store using the new operator†.[12] After developing his simulator earlier in Cambridge, he considered Simulas lack of support on variables of class types as a â€Å"major source of inefficiency† at run-time.[12] Moreover, after some time, Karel Babcisky, who worked at the Norwegian Computer Centre, published information on â€Å"Simula run-time performance† that backed Stroustrups thinking. For this reason, Stroustrup wanted to support local and global variables of class types.[12] The first version of C with Classes did not support â€Å"Inline Functions†, and therefore was not initially advantageous of the languages representation. Stroustrup, in his book, â€Å"The C++ Programming Language†, describes an inline specifier on a function as a â€Å"hint† to the compiler that it should try to create code for a call.[5] He introduced inline functions to avoid programmers â€Å"crossing a protection barrier† that otherwise would result in not allowing the classes to be used hide representation.[12] Another concept, which Stroustrup thought about deeply, was the linkage model. Stroustrup starts explaining this by stating that to a certain extent, the way compiled programs might link to one another, â€Å"determines the features the language can provide†.[12] At the time of implementing C with Classes and C++, he had taken certain decisions regarding this issue. Firstly, that â€Å"separate compilation should be possible with traditional C/FORTRAN UNIX/DOS style linkers†.[12] Secondly, type safety should be checked on linkages.[12] Thirdly, it is not necessary for a linkage to need some sort of database, but a database could be beneficial in order to straighten the intended implementation.[12] Lastly, â€Å"linkage to program fragments written in other languages such as C, assembler and FORTRAN should be easy and efficient†.[12] Bjarne Stroustrup also added static types to his language implementation.[12] By his experience with Simula and ALGOL 68, he considered this to be essential in supporting static types.[12] The only difficulty for him was how to implement it.[12] In order not to break C code, Stroustrup decided that he would allow the â€Å"call of an undeclared function† and not test type safety on such â€Å"undeclared functions†.[12] However, this was a gaping hole in the type system and a great effort was made to lessen the problems relating to this issue.[12] C with Classes had lost the capability to detect run-time errors caused by â€Å"simple type errors†.[12] Due to the fact that most programmers that worked with C were reliable on type checks available, finding simple errors was tedious when programming in C with Classes.[12] Thus, a great demand arose to strengthen C with Classs type system.[12] Eventually, in C++ the issue had been solved by â€Å"making a call of an undeclared function illegal†.[12] Derived classes were also another concept which Stroustrup implemented.[14] However, the C with Classes language did not support Simulas concept of virtual function until later with the introduction of C++.[14] Similar to Simulas prefix class notion and Smalltalks subclass concept, C++ also supported derived classes.[14] However, Stroustrup gave the names â€Å"derived class† and â€Å"base class†, mainly due to the fact that he, along with others, had difficulty in recalling what was â€Å"sub† and what was â€Å"super†.[14] Furthermore, a number of people believed it to be â€Å"counterintuitive† as a subclass usually â€Å"has more inform than its superclass†.[14] Although there was no support of virtual functions within C with Classes, derived classes were beneficial for creating new data structures based on older ones and linking operations with the resulting types.[14] However, programmers could have simply used an object of a derived c lass and consider its base class as â€Å"implementation details†.[14] Towards the middle of his paper, Stroustrup mentions the reasons why he chose the programming language C to extend on, rather than Pascal.[13] Although he points out that C is not the â€Å"cleanest language ever designed nor the easiest to use†, he selected C due to its flexibility, efficiency, availability and portability.[13] C++ Between 1982 and 1984, Stroustrup developed the popular programming language C++. Initially known as C84, it was later changed to C++ because C84 was described by Stroustrup as â€Å"ugly† and â€Å"institutional†. Compared to C with Classes, C++ includes major upgrades and new features. Listed by Stroustrup, these major additions include: â€Å"Virtual functions†[15] â€Å"Function name and operator overloading†[15] â€Å"References†[15] â€Å"Constants (const)†[15] â€Å"User-controlled free-store memory control†[15] â€Å"Improved type checking†[15] The ability to overload an operator was in demand by many.[16] Stroustrup too liked the concept, and to him, â€Å"Operator overloading looked neat.[16] Although, through his experience of ALGOL 68, he had an idea on how overloading â€Å"could be made to work†, at first he was â€Å"reluctant†, to add it to C++.[16] The reason for this was that Overloading was known to be hard to implement and therefore resulted in compilers increasing in size.[16] It was also known to be â€Å"inherently inefficient† and made code â€Å"incomprehensible†.[16] However, if this reputation proved to be incorrect, Bjarne Stroustrup, at that time, admitted that overloading would solve a lot of C++ user problems.[16] He was convinced that overloading would not result in inherent inefficiency.[16] Furthermore, he mentions that â€Å"overloading makes code obscure† and it would make their code appear â€Å"cleaner†.[16] He also observed the way Overloading would w ork with classes, and he prepared manual papers to show that the added complexity would not pose any problems.[16] Due to all these reasons, in addition to two hours of work in implementing overloading in C front for demonstrations, Stroustrup had convinced himself to include overloading to C ++.[16] Among other features, the concept of referencing was added to C++.[16] References were initially added to support overloading.[16] C passed arguments by value.[16] If passing an object by value would result in inefficiency, the programmer is able to pass a pointer.[16] However, overloading operators did not permit this strategy.[16] Therefore, due to the fact that C ++ supports both pointers and references, it does not need means for â€Å"distinguishing operations on the reference itself from operations on the object referred to†.[16] From the initial version of C ++ to the C++ currently available today, a lot of updates and versions were released.[17] Version 2.0 was a great improvement.[17] Amongst other features, it mainly introduced abstract classes and multiple inheritance.[17] Multiple inheritance allows users to have more than one direct base class.[17] However, Stroustrup did admit that adding multiple inheritance in version 2.0 was a mistake, as he felt that this concept was less important than adding â€Å"parametrized types†.[17] Parametrized types were later added in version 3.0.[17] The Java Programming Language The Java Programming Language was developed by a team Sun Microsystems engineers, led by James Gosling[3]. The project started in 1991 and was released in 1995.[3] Prehistory Back in the late 1970s, Bill Joy, the man who many still believe was the first to come up with the â€Å"idea of a programming language that later became Java†, wanted to create a language that would consist of the best features of MESA and C.[3] Having attempted to re-write UNIX in 1980, he realised that C++ was â€Å"inadequate† to accomplish this task.[3] He wanted a much more powerful tool that is able to write short and effective programs. [3]This longing started to become a reality in 1991, when Sun Microsystems began to develop a language induced by Joys idea.[3] The Suns project was initially known as the â€Å"Stealth Project† named by Scott McNealy.[3] It was during January of that year, when James Gosling, Mike Sheradin, Patrick Naughton and Bill Joy, along with others, organized a meeting in Aspen Colorado, to discuss their ideas for this project.[3] The main aim of the Stealth Project was to conduct research in the area of computers use in the  "consumer electronics market.[3] The major objective was to create a â€Å"smart† consumer electronic device that would accept instructions from a â€Å"handheld-romote-control-like device†.[3] In Goslings words, he states that â€Å"the goal was †¦ to build a system that would let us do a large, distributed, heterogeneous network of consumer electronic devices all talking to each-other†.[3] The Stealth Project later came to be known as the Green Project.[3] The work that was done by the team was divided as follows: Mike Sheradin worked on business development, Patrick Naughton focused mainly on the graphics system, whilst James Gosling took the task of finding the proper language to use for the project. [3]Before joining Sun in 1984, James Gosling created â€Å"the commercially unsuccessful NeWs windowing system as well as GOSMACS†.[3] As described by the site, GOSMACS was â€Å"a C language implementation of GNU EMACS.[3] Oak Programming Language The language James Gosling initially had chosen to use for Green Project was C++.[3] However, after some time working on it, he found it inadequate for the required task.[3] Therefore, he began adding extensions and changes to C++, which were described as the first building blocks in developing an independent language that would fit ideally to achieve the projects objectives.[3] Gosling named the language â€Å"Oak†, while he was staring at an oak tree though his office window.[3] However, some time after, the name was abolished mainly due to the fact that the name had already been in use for another programming language.[3] In fact Gosling stated that â€Å"the Java development team discovered that Oak was the name of a programming language that predated Suns language, so another name had to be chosen†.[3] It was later called Java. Gosling recounted that â€Å"its surprisingly difficult to find a good n

Sunday, January 19, 2020

Our Declining Education System :: essays research papers

Our Declining Education System According to "A Nation at Risk", the American education system has declined due to a " rising tide of mediocrity" in our schools. States such as New York have responded to the findings and recommendations of the report by implementing such strategies as the "Regents Action Plan" and the "New Compact for Learning". In the early 1980's, President Regan ordered a national commission to study our education system. The findings of this commission were that, compared with other industrialized nations, our education system is grossly inadequate in meeting the standards of education that many other countries have developed. At one time, America was the world leader in technology, service, and industry, but overconfidence based on a historical belief in our superiority has caused our nation to fall behind the rapidly growing competitive market in the world with regard to education. The report in some respects is an unfair comparison of our education system, which does not have a national standard for goals, curriculum, or regulations, with other countries that do, but the findings nevertheless reflect the need for change. Our education system at this time is regulated by states which implement their own curriculum, set their own goals and have their own requirements for teacher preparation. Combined with this is the fact that we have lowered our expectations in these areas, thus we are not providing an equal or quality education to all students across the country. The commission findings generated recommendations to improve the content of education and raise the standards of student achievement, particularly in testing, increase the time spent on education and provide incentives to encourage more individuals to enter the field of education as well as improving teacher preparation. N.Y. State responded to these recommendations by first implementing the Regents Action Plan; an eight year plan designed to raise the standards of education. This plan changed the requirements for graduation by raising the number of credits needed for graduation, raising the number of required core curriculum classes such as social studies, and introduced technology and computer science. The plan also introduced the Regents Minimum Competency Tests, which requires a student to pass tests in five major categories; math, science, reading, writing, and two areas of social studies. Although the plan achieved many of its goals in raising standards of education in N.Y. State, the general consensus is that we need to continue to improve our education system rather than being satisfied with the achievements we have made thus far. Therefore, N.Y. adopted "The New Compact for Learning". This plan is based on the principles that all children can learn. Our Declining Education System :: essays research papers Our Declining Education System According to "A Nation at Risk", the American education system has declined due to a " rising tide of mediocrity" in our schools. States such as New York have responded to the findings and recommendations of the report by implementing such strategies as the "Regents Action Plan" and the "New Compact for Learning". In the early 1980's, President Regan ordered a national commission to study our education system. The findings of this commission were that, compared with other industrialized nations, our education system is grossly inadequate in meeting the standards of education that many other countries have developed. At one time, America was the world leader in technology, service, and industry, but overconfidence based on a historical belief in our superiority has caused our nation to fall behind the rapidly growing competitive market in the world with regard to education. The report in some respects is an unfair comparison of our education system, which does not have a national standard for goals, curriculum, or regulations, with other countries that do, but the findings nevertheless reflect the need for change. Our education system at this time is regulated by states which implement their own curriculum, set their own goals and have their own requirements for teacher preparation. Combined with this is the fact that we have lowered our expectations in these areas, thus we are not providing an equal or quality education to all students across the country. The commission findings generated recommendations to improve the content of education and raise the standards of student achievement, particularly in testing, increase the time spent on education and provide incentives to encourage more individuals to enter the field of education as well as improving teacher preparation. N.Y. State responded to these recommendations by first implementing the Regents Action Plan; an eight year plan designed to raise the standards of education. This plan changed the requirements for graduation by raising the number of credits needed for graduation, raising the number of required core curriculum classes such as social studies, and introduced technology and computer science. The plan also introduced the Regents Minimum Competency Tests, which requires a student to pass tests in five major categories; math, science, reading, writing, and two areas of social studies. Although the plan achieved many of its goals in raising standards of education in N.Y. State, the general consensus is that we need to continue to improve our education system rather than being satisfied with the achievements we have made thus far. Therefore, N.Y. adopted "The New Compact for Learning". This plan is based on the principles that all children can learn.

Saturday, January 11, 2020

Getting a Pre-Nuptial Agreement

Marriage is one of every one’s dreams, at least majority do. It is the union of two lives and two souls. Sometimes it is by choice, and sometimes it is a choice others make for you. Regardless of the nature of the union, whether it was desired for or not, a marriage is deemed forever unless legal matters step in and declare itself above all else.It is unfortunate that there are marriages that end badly. Some get pay in money or with their lives. Others get hurt emotionally or physically. No matter how dreamy a person could get with the idea of marriage and a married life, it is still important to get a Prenuptial Agreement before anything else is settled and deemed final. Every couple must have a Prenuptial Agreement.Getting a prenuptial agreement does not mean that an end to the relationship is anticipated. Instead, the mindset is to get some ground rules. It is not being too cautious.It is an assurance that human dignity can never be taken no matter what happens. With this i n mind, four articles were used to explore the very idea. One of them suggested that there will always be expectations, some cannot be met.The second is that money will always be talked about regardless of being forced to remain below a certain line. The third there will be sacrifices, not all should have been made. Lastly, it is to keep a certain degree of freedom despite these sacrifices.According to Polly Sherman’s article entitled â€Å"Great Expectations†, the initial definition of marriage was for the sake of the kids and appearances. The society can destroy a person’s reputation without having all the facts.But with only these for their reasons to maintain a married life, there came more divorces than people would have found comfort in. There were more unhappy unions as well. But the article also shared that people today define marriage as the ideal union.It will be through finding the appropriate partner, who will understand everything about you and acce pt all strengths and flaws. It will be about love. It would encompass a match made through the soul.However, regardless of the definition, expectations are still made. The package is simply bigger today. Sadly, not all expectation can be met. No matter how strong the will of a person might be, there will always be times when that cannot be met.As the old clichà © goes, you cannot have everything. People might expect, but sometimes it is better to expect nothing at all. A prenuptial agreement would help set those expectations in the event that something wrong comes along the way.The second article is by Deborah Siegel. Her article â€Å"The New Trophy Wife† suggested that despite putting money an issue on the side, it gets to be the center of attention in the end. In her article, she used actual couples to illustrate her point.It was written couples who earned almost the same amount had less problems in comparison to the couple where one earned more. This is highlighted furth er when the woman earns more.This scenario pointed that regardless of how ideal the relationship is, there will always be problems. It is not saying that it is inevitable to have problems where money is concerned. However, when one of a pair is gaining more, insecurities are pinched at.This will instigate all other emotions, including jealousy and even hate. The love they built might be overpowered by these negative emotions. More importantly, when it comes to money, personal assets might be misplaced or even taken away. A prenuptial agreement will secure that and a better future if the relationship becomes less sustainable.In contrast to the other articles, Barbara Kantrowitz and Pat Wingert shared in â€Å"The Science of a Good Marriage† that the ideal image of a union, with that of a soul mate, is a mere myth. Effort should be exerted. Sacrifices will have to be made.They made a study, through the nature of what he and his current wife do for a living, to determine these d ifferent realities. By having these different natures, they will be able to define and set criteria of what a good marriage should be like. They called it a science because they used a well thought research method to retrieve these information.The article focused on getting the picture that seems to be left unsaid before a marriage is affirmed by a ceremony. As illustrated in the article, marriage is not merely the simply combination of the yin and yang. That might be a beautiful dream but realities are more important.A prenuptial agreement may assist in minimizing the dilemma with regards to how much sacrifices are made. Sacrifices are a part of life. One will have to sacrifice to achieve something even greater. But in certain marriages, there are sacrifices that are uncalled for. Those are situations where none is achieved, much less returned.  Lastly, the story by William Faulkner â€Å"A Rose for Emily† is a about a woman who stood from everyone else in the community. T he members of society suspected so much of her. They judged and scrutinized her very existence, even until that last day of her life.But despite what other people thought of her, she acted the way she would have thought appropriate. It might not be with the approval of everyone else, but she does not need the approval of others to make what she does worth doing and her life worth living.In line with this, no matter what happens, a life partner should let their other half be themselves without judgmental eyes. This might be a more romantic aspect of a getting a prenuptial agreement, but this does not even have to be the legal kind.It should be a silent agreement between the lovers that they should let each other be as themselves. Otherwise, if they try to change the other too much, he or she would not be the same person they love and chose to begin with. It would be just their ideals and not who those people really are.In conclusion, a prenuptial agreement is very important. It will set expectations for either party. It will stand in opposition to financial issues if it gets in the way of the progress in their relationship. It will establish how much either constituent should sacrifice to make the relationship work through the years. Finally, the agreement is to allow those involved to be themselves without any form of restraint or coercions.These points cover the basic reasons as to why it is important to attain a prenuptial agreement before there will be any signing of documents or walking down aisle. Having one at hand does not mean that the couple anticipates what is going to happen to their marriage.No one can actually tell the future unless they are the ones to make for themselves. Other people cannot tell them the flow they will have to follow unless for their own beliefs and choices.Marriage is the ideal union of lives and souls. But it is not the perfect relationship one can live by. Problems will always rise from different causes. Allowing the relatio nship to fail and break will be by the hands of the couple themselves. It will depend not only on their feelings but also on their principles.If what they want is clear to them, and a happy married life is what they are after, a prenuptial agreement will assist them in achieving that goal. It is not a means to an end. Instead, it is a guide to make things better regardless of what happens through it.

Friday, January 3, 2020

How Can An Ledc Sustain Its Business Endeavours In A Morally

How can an LEDC sustain its business endeavours in a morally ethical way? This essay will examine the moral ethical principles of an LEDC and the perspective its entrepreneurial endeavours and the difficulties in applying sustainable and ethical business practices. An LEDC is an abbreviation for (less economically developed country. An LED is a country that lacks in financial resources that makes it a struggle in any sustainable economic growth. The backbone of an LEDC relies on its agriculture and civilian labour as opposed to industrial organisations. The effects of this requires the country to produce more raw materials. Some qualities of an LEDC are, inadequate national health, infant mortality, shorter life expectancy, and lower†¦show more content†¦Lastly, this essay will examine the foreign relations of the country and its trades of import and export with producing and consuming nations on its outside affiliations. MAIN BODY This essay will begin by examining the government of Bhutan and its direction of improving the economic structure of its country for a sustainable future. Bhutan is a country located on the southern slopes of the eastern Himalayas. It is a country that is grappling with modernity and development. Around thirty years ago, Bhutan was completely isolated. With that span of years, the country is now known too much of the outside world. Recently elected Prime Minister, Tshering Tobgay, of the country Bhutan has been a prominent figure of the country. Tobgay believes that acting on issues like youth employment, corruption, and the national debt is more necessary than focusing solely on the GHN. Tobgay additionally concentrates on stopping corruption in Bhutan’s government, and interacting with the Bhutanese population. Tshering Tobgay declared that the country is additionally carbon negative rather than simply carbon neutral. The Royal government of Bhutan is comprised of 10 minist ries which work in bringing the goal of Gross National Happiness closer to reality. Gross National Happiness is a term originated by his majesty the fourth king of Bhutan, Jigme Singye Wangchuck, within the nineteenth seventies. The idea implies that property