View this PageEdit this Page (locked)Attachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Fall 2005 Discussion 1

There are many object-oriented programming languages out there. In this class, we use Smalltalk. It was designed to be simple and consistent. That makes it a good choice for this course. Other OO languages are designed with other ideals in mind. For instance, Eiffel and Objective C are geared for efficiency. Some languages (C++, Java, C#) are more commercially viable than others. Some (Self, for instance) are research languages that try to expand the definition of OO.
In this first discussion, it is your assignment to shed some light on these questions. Go find one reasonably objective paper that compares some of these languages. By objective, I mean a piece of writing that is not an advocacy piece. For instance, here is an article comparing Eiffel, C++, Java, and Smalltalk. If you will notice, it is on the Eiffel website and there is a clear bias towards Eiffel. While an advocacy piece is appropriate for the site, it is not for this assignment. As a computer scientist, you need to be able to assess different programming languages. To do that, you need to be able to distinguish objective from biased sources.

How to find an objective paper

There are many papers available on the Web. You should easily be able to find one using Google, or scholar.google. Georgia Tech's library also grants you access to the ACM digital library. There you can find the proceedings of OOPSLA (Object-Oriented Programming, Systems, Languages & Applications). That's a great source for objective papers on object-oriented programming. These papers have gone through a peer-review process and are thus likely to be quite objective. You can also check out an advocacy site and see which objective papers or studies they cite. Then, go read those papers. You can also try wikipedia.

What makes for a good paper

Performance can be important. For this class, it is less important than the programmer's experience. So, your article should focus on something else.

It would be really nice if your article had a user-study that reflected how people actually use these languages. Is one language particularly easy to learn? Is the code created with one language more robust than another? Does it take less time to accomplish a task in one? You can also concentrate on features. For instance, CLOS (Common Lisp Object System) is often tauted for having a particularly flexible meta-object-protocol. Something that compares the meta-object-protocols of various languages would be fine. You can also take a paper that introduces a new language and compares it to other languages. Why does this new language exist and what does it offer the programmer?

Since this class uses Smalltalk, it would be nice if you can find an article that also includes Smalltalk. That way, it will be easier for other people to relate to your post. This is not a requirement though. If you find a good piece that doesn't include Smalltalk, feel free to use it.

What to do

  1. Create a page for yourself on Fall 2005 Who's Who. Include a little bit about yourself (hobbies, a picture if possible, etc.). If you use a nickname, include your full name on your home page, so that we (the instructor and the TAs) can figure out who you are.
  2. Find an appropriate article.
  3. Read it.
  4. Write up a short description of the main points you took from that article and why you think they are relevant to the two questions. This should be around 200 words. It should include a reference to the article you read; either a URL link or a more formal reference is acceptable. Just make sure we can find the article if we wanted to.
  5. Read some of the other posts that have already been made. Relate your description to one of those posts, citing who's post you are relating it to. If you are the first or second post, you do not need to do this part.
  6. Post this to your "Who's Who" page. And edit it until you are happy with it.
  7. Once you are happy with it, post it to the bottom of this page using the "add to the page" box.
Your post will be graded by how well it answers the two questions, how well it relates to another post, and how good your source is. If you have question about this assignment, ask them here.

Post your contribution here








Babak

Michael Federici - Discussion 1

I Found my article for discussion 1 at http://www.outbacksoftware.com/oo/oolangcomp.html It compares Smalltalk, C++ and Java. Besides differing most obviously in syntax, the langauges have several key differences as outlined by the article. Although the concept of an abstract class exists in both smalltalk and C++, it is only implemented in java. Garbage collection is standard in both smalltalk and java, yet in C++ the programmer has control over memory management. In line with C++ having user memory management it is the only language which explicity has the use of pointers available to the programmer. For certain programmers this makes the language much more accessible. C++ is also the only language with multiple inheretances possible as well as the only class without a root class 'Object'. This lack of a root class object suggests that C++ is in fact a less object oriented language than the other two, retaining more of its C procedural history. I read Robert Huston's post and it seems as though he read a different version of a comparisson between languages similar to mine. His evidence of garbage collection and memory management as well as inheretance seem to corroborate my article. However, his goes more into performance which was not explicitly mentioned in my paper.

Shruthi Panicker

I found an interesting article that goes through the history of Object Oriented Programming titled ‘A Brief History of the Object-Oriented Approach’. It is written by Luiz Fernando Capretz and the article can be found here:

http://gtel.gatech.edu:2111/citation.cfm?id=638778&coll=portal&dl=ACM&CFID=53748549&CFTOKEN=16915125

Object-Oriented programming as a concept has been around for a while and exploded into the scene of computers in the last three decades. Ideas such as reduced complexity, friendliness, and reuse dominate today’s software world. The entire development with computers over many decades has been to reach down and reach the common people and even children.

This article compares some of the many different OO languages that have come about during the years. The shift from procedural to languages modeling the real world came about with the growth of languages like CLU, which had room for abstract data types like the cluster construct. Simula, smalltalk, etc then grew to become ancestors of OO language with classes and inheritance which differentiated it from languages like CLU.

To meet with the demand for people moving from procedural or low level programming to OO programming, hybrid languages such Objective-C, C++, ObjectPascal and Modula-3 were created. Programmers had the benefit of using either or both of the features to their advantage. However, these languages are complex and have to be used carefully because it is difficult to master and it is very easy to deviate from sound OO principles.

Then the need for concurrency in OO brought about languages like Actor, ABCL, POOL-T, Orient84 and ConcurrentSmalltalk. Languages like Beta and Eiffel also borrow heavily from Simula and CLU.

Despite the many different good Programming languages, C++ became extremely widespread before Java became very popular. This is mainly because of influence of UNIX and popularity of C from which C is derived. Java is a cleaner version of C++ with much more robust library of classes, easier to learn and is used with internet (which is extremely important these days) and is the most widely used OO language these days

Looking at the history, we can see that languages have changed and evolved to meet people’s needs and technological advances over time.

I read Shaun Duncan’s article and I think it greatly relates to what I have written. My article supports and gives the reason behind Shaun’s write-up. As we have seen with the history of OO, I completely agree with the fact that every language has come out of something else over the course of time and that most languages have many similarities. There is no pure OO language as yet and it will be a while before that happens. Until then, as we have seen over the years, as new ideas come up - new languages will evolve at the same time.


Discussion 1 - Daniel Kitchener

Vinny Ramachandran: Discussion 1

Discussion 1: Java vs C++ and Eiffel

Discussion 1 - Jason Spain

Discussion 1
Kyle Spafford

For my discussion, I read “A Comparison of Object-oriented Programmind in Four Modern Languages.”. This article can be found online at http://www.cs.ubc.ca/rr/proceedings/spe91-95/spe/vol24/issue11/spe920rh.pdf

This article compares some modern object-oriented languages with the older and more popular C++. The author’s stated main goal with this paper is to help facilitate programmers’ understanding and exploration of the modern object-oriented languages. The paper takes a simple programming problem, and compares the runtime, memory use, and other vital statistics across several languages. The four modern OO languages selected for this paper are Oberon-2, Modula-3, Sather, and Self. The problem centers around a university database of personnel files. There are three types of files, a basic personnel file, a student file, and a teacher file. Each has some shared and some unshared variables with the other classes. That is, student and teacher inherit from personnel file. Several implementations in each language are considered for comparison. With the details of the problem, the OO concepts explored are inheritance, dynamic dispatch (binding), code reuse, and information hiding. While each of these languages is object oriented, each facilitates the implementation of OO concepts in its own way. This makes the article extremely relevant for question number one, “What makes these languages different?” For example, Oberon2 provides the extensions to a module-based language to provide for inheritance so that it becomes an object oriented language. This gives it the advantage of being somewhat simple and compact. While being compact, this language does include garbage collection, which makes the programmer’s job easier. Modula-3 takes the same approach but ends up being significantly larger and more complex. It implements OO themes by using object types, which are incorporated in the core of the language. This is contrasted by Sather’s (derived from Eifel) simplicity, which makes it excellent for simple programs. It is similar to smalltalk in that it supports objects and classes and that methods must belong to an object or class. An interesting fact about Sather is that it also emphasizes static typing. Self, as well, is simple, and provides a language without a very steep learning curve. However, in just about all cases, C++ outperforms the other languages as far as runtime and memory consumption go.
Question two asks about how the languages affect people’s programming. Well, the particular effect, I think, is specific to each language. C++, provides for a quick implementation with syntax simlar to the well known C, so it is popular, but sacrifices some of the OO principles for speed. Modula and Oberon are somewhat the opposite. They lose performance in favor of stricter support of OO principles. This makes them more elegant in some cases, but less efficient. This makes them not as tempting a choice for commercial programming. Self and Sather seem to be even less known, with strong emphasis of OO and (in Sather’s case) decent performance. These languages allow for easier programming with strong OO principles. However, since they are not similar to conventional languages, they are not too popular in the commercial programming market.

Relation: This article relates to Daniel King’s discussion in that both are comparison’s of language. His article compares Java, which my article didn’t cover. He shows the advantages of Smalltalk and of Java, two of the most popular OO languages not covered in my article. Java, like Sather, emphasizes some typing, and smalltalk like Oberon and Modula is untyped.


Discussion 1 - Shaun Duncan

Discussion 1 - Brandyn Roemer

asdf

Discussion 1 - Steven Carr

Discussion 1 - Nick De Jesus

a href="http://coweb.cc.gatech.edu/cs2340/4389"

Discussion 1 Vasilios Pantazopoulos

Discussion 1 - Eric Amy

Discussion 1 - Priyanka Mahalanabis


Discussion 1 - Peter Kinnaird


Discussion 1 - Brad Sickles

Discussion 1 - Stephen Rollyson

Discussion 1 - Daniel King

Discussion 1 - Jack Gruendler

Discussion 1 - Andrew Calvin

Discussion 1 - Fisnik Shpuza

Chris Whalen

Dicussion 1 - Wesley Floyd

Discussion 1 - Stephen Ake



Richard


Discussion 1 - Brandon Reynolds

Discussion 1 - Elspeth Watson

Discussion 1 - David Eakes

Discussion 1 - Vinayak Kashyap

Discussion 1 - Vehbi Dragaj

Discussion 1 - Colin Gillens

Bowman Discussion 1

Discussion 1 - William Blatt

Disussion 1 - Kevin Legette


Discussion 1 - Eliot Kim

Discussion 1 - Robert Hutson

Discussion 1 - Joung Goo Lee

"The semantic differences and design choices between C# and Java" By Mark Johnson

How these languages differ:
It is JAVA language that is more simple and easier than C++. SUN developed JAVA and it has been used for web-programming from the middle of 90s; it was for the program that control home appliances’ controller.
At the end of 90s, Internet using was explosively increased. Also, JAVA was so spread widely because every program was made with web-base that MS who was threatened by it developed C# against JAVA. In fact, MS got the JAVA license from SUN in 1997 and developed MS JAVA, but they couldn’t use it because SUN brought a lawsuit against MS.

What is interesting is that MS JAVA was developed, but nobody saw it, actually and that is why I think C# is probably MS JAVA, which is from MS in 1997. The name, C#, was created because they, MS, couldn’t use the name “JAVA”, I guess. Truly, JAVA and C# are similar, but there are some more functions in C#.

Some of the features differences between C# and Java from article
Type system :
C# arrays work differently from Java arrays. C# defines several class member types that do not exist in Java: structs, enumerations, properties, delegates.

Primitive/object unification
C# type system that is bound to be popular is the use of all primitive types as objects. when we use primitive literal values, such as strings and integers, as if they were objects, without first constructing a String or Integer object in code, as is necessary in Java.

Methods
C# methods have some features that Java does not. In particular, C# provides several modifiers on method parameters and has keywords for virtual methods and method overriding.http://www.javaworld.com/javaworld/jw-12-2000/jw-1221-csharp2.html

How does it affect people's programming:
The both, that have similar functions and forms, are learnable languages for beginners, but they are definitely different in reality. JAVA, which was developed earlier than MS C#, has been used by lots of programmers and has been updated, but C# has not. Even though C# has more functions, it would be difficult to change it because it is not like learning MS WINDOW or OFFICE. Also, many programmers are extremely confused between the two programs. Therefore, I think C# has not that much effect, but for surviving as a major language, it needs to be friendlier to beginners.

Discussion 1 - Manabu Shimobe


(Discussion 1)

For this discussion(1) , I read an article titled "The Evolution of Object-Oriented Languages".
The article can be found at the following URL: http://www.developer.com/design/article.php/10925_3493761_1

In the article, "The Evolution of Object-Oriented Languages", Matt Weisfeld mentioned many computer scientists think that the first truly O-O language was Smalltalk. In Smalltalk, everything is an object and it is impossible to write a program that is not Object-Oriented. This is not true for other object-oriented languages such as Java and C++ because we can use non-objects(primitive data types such as integers, floats) in those languages.
Therefore, although smalltalk is considered as a pure O-O, C++ is said to be a hybrid language that supports O-O features.(Java is also considered pure O-O because Java enforces the O-O paradigm.)
According to the author, smalltalk is a programming environment rather than a programming language because it has an interactive environment that interprets code on-the-fly, which means we can change the code of a program while it is running.

(Java vs C++)
Java was developed as a language for networked and distributed environments.

Compared with C++, Java does not have multiple inheritance, automatic type conversions, the use of pointers,and the C++ memory management scheme;however, its syntax is based on C++. Therefore, we consider that Java eliminated some of the complexity in C++.

Java is more robust than C++ because it has a very strong emphasis on preventing problems in the first place and detecting them early. In addition, Java does not support pointers, which prevents much of the data corruption encountered when using C++.

Although C++ has a lot of system-dependent aspects embedded in them, Java is system-independent because it can be run on any platform that supports a Java Virtual Machine (JVM).

The biggest disadvantage of Java against C++ is the performance. The code written in Java runs relatively slow compared with C++.

Multithreading is hard to manage in many languages, but Java made multithreading much easier to manage.

Classes in Java are loaded dynamically, not linked into executables. Therefore, finding runtime information and the loading of classes over networks became much easier.

In conclusion, what a programmer needs decide the language he/she uses. For example, if a programmer wants to create a cross-platform software, he/she should choose Java. If a programmer needs a high-performance software, the first choice will be C++. Finally, Smalltalk will be useful to understand the concept of OO because everything in Smalltalk is Object!

I read Nirav Shah's discussion on the difference between C and Java. I strongly agree with her idea that Java is much easier to learn than C mainly because Java has an auto garbage collection and we don't have to think about pointers in Java. However, I think that the nicest thing about Java is platform-independence. Thus, if I write the java code once, I can run that code anywhere(on any platform).


Discussion 1 - James "Ben" Mitchell

Discussion 1 - Jonathan Reitnauer

Discussion 1 - Travis Shepherd

Discussion 1 - Joaquin Estrada

Discussion 1 - Erik Webb

Discussion 1 - Nicholas Beckmann

Discussion 1 - Dasha K

Discussion 1 - Christopher Octa

Mark Nichols - Discussion 1

Discussion 1 - Michael Levy




Andrew

Discussion 1 - William Lee

Peter Budny


Discussion 1 - Trung Lai

Discussion 1 - David Figlar

Dicussion 1 - Chris Gray

Discussion 1 - Trevor Bentley

Discussion I-Michael Dunn

Discussion 1 - Blake Israel

w

Discussion 1 - Lee Crippen

Discussion 1 - Lee Crippen

Discussion 1 - Matthew Dutton

Discussion 1 - Chris Ronderos

Discussion 1 - Joseph Earle

Alex Groleau:

Programming Language Comparison
http://www.jvoegele.com/software/langcomp.html

Description:

The first major point the article attempts to make is that Eiffel, Smalltalk, Ruby, Java, C#, C++, Python, Perl, and Visual Basic differ by their purity in relation to object-orientation. Albeit a subjective definition of an object oriented language that requires the language to have everything as an object, the article does an effective job of showing the object-oriented nature of various programming languages. Their first conclusion is that, “Eiffel, Smalltalk, and Ruby are all pure Object-Oriented languages”. This is simply due to the fact that Java, C++, C#, etc. use primitive structures and have operators that are global, sending no actual message to the object itself. These minor differences are trivial when trying to show whether or not a language is purely object-oriented. There are standard global characters in the “pure Object-Oriented languages” that are not necessarily messages. Ultimately, this does not affect the end user’s programming. Aside from syntactical variances from language to language, all of the object-oriented languages possess the ability to create objects. The features of objects should be considered foremost. C++, Java, and C# excel in this area when compared to Smalltalk, Eiffel, Ruby, and Python. Features like enhanced access control, multiple-inheritance, and method overloading are invaluable features in the world of object-oriented languages. These features have allowed these languages to maintain a great level of scalability and modularity, and allow for a programmer to fine tune object-oriented code and re-use it very efficiently.
Another major concern of the article is static vs. dynamic typing. The article does a good job remaining objective in this part of the article. Dynamic typing can be useful for simplifying programming; however, it is far safer to use static typing in order to insure that a program is moving data around as it should. Dynamic typing can lead to object/class processing of data it was not meant for, a major headache for any programmer. Static definition takes a little bit longer to implement, but will be worth it in the end.

Relation:

Discussion 1 - G. Stepanov

I find this discussion interesting because it shows how much the perceptions of an object-oriented language vary from person to person. Many authors of articles establish a basis for object-oriented programming and pitch all languages against this basis. Eventually many languages fail and show that author’s favorite language wins. The author of the article in this discussion seems to like Eiffel and SmallTalk because they pass his object-oriented tests. This is a flawed way to look at a language. The best way to define an object-oriented language is by saying that the language has the ability to create objects from classes. That is the fundamental fact of object-orientation. The ultimate usability of a language comes from the understandability of its syntax and features related to objects. Smalltalk, in my opinion, definitely does not have the former or the ladder. Eiffel does not have the ladder. This is why these languages are not highly adopted today.

Discussion 1 - Josh Holt

Discussion 1 - Kevin Adkisson

Discussion 1 - David Sponaas

Discussion 1 - David Shirley

Discussion 1 -Scott Le

Encapsulation in Object-Oriented Programming:
Comparison & Evaluation
http://www.lirmm.fr/~ardourel/WEAR/wear03AlAhmad.pdf
Author: W. Al-Ahmad

The article I read compared the differences in encapsulation between four different programming languages. For simplicity sake, I will only report on the two we are (or will be) familiar with: Java and Smalltalk.

Concerning encapsulation, one of the main characteristics that set Smalltalk apart from Java is the absence of scoped variables. Smalltalk classes do not have public and private variables/methods. Sticking to a simplistic rule set, all class attributes are private and all methods are public. Java’s more traditional approach is of course slightly more complicated with four types of scope (public, private, protected, and package).

This fundamental difference has a few implications on object oriented design. As a general design principle, attributes of a class should never be public. A benefit of Smalltalk is the strict enforcement of this rule; whereas Java’s structure will permit the more “hackish” style of code. From another stand point, method access cannot be restricted in Smalltalk. This can exacerbate the leap from C-like languages to Smalltalk. Scoped methods disallow sub classes from changing the inner workings of their super class. In Java, a public class may call a helper private class. With this same design in Smalltalk, the same “private” class could be called without the proper requisite of the public class. A different mind set will be required when encapsulating data in Smalltalk if you are coming from a Java background.

I reviewed Elizabeth Solomon’s post concerning the qualifications of an object oriented language. The material she reported on claimed Smalltalk as one of the only “pure” object oriented languages because of their strong roots in encapsulation, inheritance, and polymorphism. However, the conclusion of my article states a slightly different case. The author states that, “an OOPL must provide language constructs ... to restrict access to the representation of objects.” In this he refers to having scopes to hide the insides of an object (as desired). In this case, he make the point that Smalltalk does not completely cover this point on the OOPL check list. This argument may be a bit persnickety, but the point I am trying to make is that no language is truly a “pure” OO language.



Discussion 1 - Izudin Ibrahimbegovic

Discussion 1 – Elliott Clark
gtg850h

The Toll of Garbage Colletion
written by Carsten Figaard
Copyright 2004

http://www.geocities.com/carsten_frigaard/the_toll_of_garbage_collection.pdf
Citations at : http://citeseer.csail.mit.edu/659189.html


This article while not published in a more respectible website is a very good review of garbage colletion and its different pros and cons. It includes an overview of garbagee colletion schemas along with possible allocation schemas used. Carsten Figaard discusses garbage collection algorithms including the mark and sweep algortim and the root-set algorithm. Then as with most computer language reviews there is a systematic analisys of the short falls of c++ and c# as they compare to each other.


The review uses a dated version of gcc(Gnu gcc 3.22) and a mono enviroment(0.28). The open source mono enviroment is a welcome sight since a great deal of scholastic papers seem to ignore completly the mono compiler and libraries. Currently Gcc 3.4 is the most used branch of the verneable compiler, and mono is stable on 1.18. These drastic version changes may have invalidated some of the preformance testing that was included.

C# which is a garbagee collected language runs the Boehm-Demers Weiser GC collector which is a conglomeration of the Conservative collector and the mark and sweep colection technique. C++ uses no garbage colletion and the devoloper must free all dynamically allocated objects. This extra step can lead to optimal memory usage or it can lead to memory leaks. However the mono implementation of C# did not show aa signifigant preformance decrease as compared to a compiler optimized c++ tight loop involving vector allocations. As the memory requirements grow garbage collection becomes more and more troublesome and the response gap between c++ andd c# grows.

The article is an in-depth look at the downside of garbage collection. C++ remains probably the fastest object oriented language, objective c being its equal. This preformance hit however is not huge and can be acceptable as computer speed grows because the ability to forget about free'ing memory can greatly decrease the needed devolopment time and effort.

Nirav Shah also talks about grabage collection and its use to curb errors. Both c# and java use a runtime enviroment to reduce the complexity of dealing with memory, memory leaks, endianness, and other obscurities.

Discussion 1 - Jason McGarr

Discussion 1 - Sashmit Bhaduri

Discussion 1 - Michael Groves



Timmy

Discussion 1 - Elizabeth Ashley Durham

Elizabeth Ashley Durham

Discussion 1 - Elizabeth Ashley Durham

Discussion 1 by Michael Gorbsky

Discussion 1 - Daniel Engel

a b

Discussion 1 - Brian Henke

Discussion 1 - Elizabeth Solomon

Discussion 1 - Kaori Takeuchi

Discussion 1 - Kaori Takeuchi

Discussion 1 - Jeff Watson

Discussion 1 - Vishal Patel

Discussion Kalpit patel

Discussion 1 - Nirav Shah

Discussion 1 - Jiasheng He

Discussion 1 - Matthew Plowden

Discussion 1 - Ryan Nigro

Discussion I For cs2340.

On "A Conceptual Perspective on the Comparison of Object-Oriented Programming Languages"
By Bent Bruun kristensen, Kasper Osterbye
http://www.prism.gatech.edu/~gtg296s/ooessay.pdf

This article was written a while ago, back in 1996, so the information is pertinent, but the time period bears noting. It begins by defining an object oriented language as “object-oriented = objects + classes + inheritance”. It compares their support for various types of abstraction including: classification, aggregation, and specialization. The ST80, Beta, C++, Eiffel, CLOS, Self, Objective C, Ada, Simula, and O-Pascal languages were used for comparisons. Objective C was marked as using “message expressions” (from smalltalk?) as well as objects for abstraction.

Some languages discussed are more inclusive of modern abstraction capabilities. Eiffel employs “features”, which can be renamed and redefined in its subclasses. With the ST80 language the class of an object could be changed dynamically with a call to the “changeClassToThatOf” method. Also, in ST80, references have no type, so a variable could change its object association. This ability is not available to the programmer in popular modern languages such as Java and C++.

It then talks about how languages use "kinds" and "things" to impliment verbs and nouns, respectively, from natural languages. For example, C++ uses "friend functions" to implement these actions.


~~~It should be noted that I found a much better article in the "References" at the end of my article if someone wants to use it: "What is Object-oriented programming?" - B. Stroutrup IEEE Software 1988.

Discussion I For cs2340.

On "A Conceptual Perspective on the Comparison of Object-Oriented Programming Languages"
By Bent Bruun kristensen, Kasper Osterbye
http://www.prism.gatech.edu/~gtg296s/ooessay.pdf

This article was written a while ago, back in 1996, so the information is pertinent, but the time period bears noting. It begins by defining an object oriented language as “object-oriented = objects + classes + inheritance”. It compares their support for various types of abstraction including: classification, aggregation, and specialization. The ST80, Beta, C++, Eiffel, CLOS, Self, Objective C, Ada, Simula, and O-Pascal languages were used for comparisons. Objective C was marked as using “message expressions” (from smalltalk?) as well as objects for abstraction.

Some languages discussed are more inclusive of modern abstraction capabilities. Eiffel employs “features”, which can be renamed and redefined in its subclasses. With the ST80 language the class of an object could be changed dynamically with a call to the “changeClassToThatOf” method. Also, in ST80, references have no type, so a variable could change its object association. This ability is not available to the programmer in popular modern languages such as Java and C++.

It then talks about how languages use "kinds" and "things" to impliment verbs and nouns, respectively, from natural languages. For example, C++ uses "friend functions" to implement these actions.


~~~It should be noted that I found a much better article in the "References" at the end of my article if someone wants to use it: "What is Object-oriented programming?" - B. Stroutrup IEEE Software 1988.

Discussion 1 - Cooper Welch

Discussion 1 - Robert Simpson

Discussion 1 - Mark Shalda


Discussion 1 - Hai Phan



Discussion 1 - Tom Filip


Discussion 1 - Tom Filip


Discussion 1 - Nazli Dokuzoglu



Nick

Discussion 1 - Nazli Dokuzoglu

Discussion 1 - Amro Mousa

Discussion 1 - Jimmy M. Espana

ksdfa

Discussion 1 - Derek DeRaps

Discussion 1 - Arwa Tyebkhan

Discussion 1 - G. Stepanov

Discussion 1 - Oh Kil Kwon

test

Courtland Goodson - Discussion 1

Samuel Young

Discussion 1 - Patrick Jarrett

Discussion 1 - Patrick Jarrett

Discussion 1 - Hitesh Kanwathirtha

Discussion 1 - Arcadiy Kantor

Discussion 1 - Let's burn some firecrackers here!! - Matias Paulez

Discussion 1 - Emily Ewald

Discussion 1 - R. Steven French

Discussion 1 - Luis F Cruz

http://coweb.cc.gatech.edu/cs2340/4401

Discussion 1 - Marcus Moore

Discussion 1 - Ejike Onyekwuluje #

Discussion 1 - Russell Myers


Discussion 1 - Brian Patrick Smith

Discussion 1 - Blake O'Hare

Links to this Page