|
|
For the code examples presented in this resource I am going to be using a sudo language. The concept behind a sudo language
|
|
|
is to be able to present programming concepts in a language agnostic form so that the concepts can be translated to your
|
|
|
language of choice.
|
|
|
\par
|
|
|
|
|
|
So it is great that you have chosen lanauge X to use throughout this resource, but how is the sudo lanauge going to help you out?
|
|
|
Well, lets walk through a few examples and I will show you how the examples get translated to a few various languages.
|
|
|
|
|
|
\subsection{Example 1}
|
|
|
\begin{lstlisting}[caption={Example 1 - Sudo Code}]
|
|
|
name = "Brett"
|
|
|
if name == "Brett"
|
|
|
print "Name Is Brett"
|
|
|
else
|
|
|
print "Name Is Not Brett"
|
|
|
\end{lstlisting}
|
|
|
|
|
|
In this example we have a variable called "name" that we are assigning the value of "Brett". Then we are checking if the
|
|
|
variable name is equal to the value "Brett", if so then we want to print "Name Is Brett" otherwise if it does not then we want to
|
|
|
print "Name Is Not Brett". As far as programming goes this is a fairly simple process but lets try and translate this example
|
|
|
to a few different languages to see how it is done.
|
|
|
|
|
|
\begin{lstlisting}[language=php,caption={Example 1 - PHP}]
|
|
|
<?php
|
|
|
$name = 'Brett';
|
|
|
if( $name === 'Brett' ){
|
|
|
echo 'Name Is Brett';
|
|
|
} else{
|
|
|
echo 'Name Is Not Brett';
|
|
|
}
|
|
|
\end{lstlisting}
|
|
|
|
|
|
\begin{lstlisting}[language=c,caption={Example 1 - C}]
|
|
|
int main{
|
|
|
char* name = "Brett";
|
|
|
if( name == "Brett" ){
|
|
|
printf("Name Is Brett");
|
|
|
} else{
|
|
|
printf("Name Is Not Brett");
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
|
\end{lstlisting}
|
|
|
|
|
|
\begin{lstlisting}[language=python,caption={Example 1 - Python}]
|
|
|
name = "Brett"
|
|
|
if name is "Brett":
|
|
|
print "Name Is Brett"
|
|
|
else:
|
|
|
print "Name Is Not Brett"
|
|
|
\end{lstlisting}
|
|
|
|
|
|
\begin{lstlisting}[language=javascript,caption={Example 1 - Node.JS}]
|
|
|
var name = "Brett";
|
|
|
if( name == "Brett" ){
|
|
|
console.log("Name Is Brett");
|
|
|
} else{
|
|
|
console.log("Name Is Not Brett");
|
|
|
}
|
|
|
\end{lstlisting}
|
|
|
|
|
|
\begin{lstlisting}[language=java,caption={Example 1 - Java}]
|
|
|
class Example1{
|
|
|
public static void main( String[] args ){
|
|
|
String name = "Brett";
|
|
|
if( name.equals("Brett") ){
|
|
|
System.out.println("Name Is Brett");
|
|
|
} else{
|
|
|
System.out.println("Name Is Not Brett");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
\end{lstlisting}
|
|
|
|
|
|
Notice that all of the actual examples end up looking the same? That is the point of using the sudo language, so that we can
|
|
|
discuss the core concepts for each example. Also, notice the Python implementation, it is almost line for line, word for word
|
|
|
identical to the sudo language example.
|
|
|
|
|
|
\subsection{Example 2}
|
|
|
Since we have seen a fairly simple example above, lets take a look at a more complicated example. Do not be afraid if it does not make
|
|
|
too much sense right now, but try and notice the similarities between the sudo language and the actual code examples.
|
|
|
|
|
|
\begin{lstlisting}[caption={Example 2 - Sudo Code}]
|
|
|
class Person
|
|
|
private name
|
|
|
|
|
|
function getName()
|
|
|
return this.name
|
|
|
|
|
|
function setName( newName )
|
|
|
this.name = newName
|
|
|
|
|
|
|
|
|
p = new Person()
|
|
|
p.setName("Brett")
|
|
|
|
|
|
|
|
|
if p.getName() == "Brett"
|
|
|
print "Name Is Brett"
|
|
|
else
|
|
|
print "Name Is Not Brett"
|
|
|
\end{lstlisting}
|
|
|
|
|
|
Ok, in this example we are using the concept of classes and objects. We are creating a new class called "Person" with a
|
|
|
private property "name" and two methods "getName" and "setName". "getName" will return the value of the private property "name" and
|
|
|
"setName" will take in a single parameter "newName" and set the private property "name"'s value to the value of "newName". Lastly we
|
|
|
are going to create a variable called "p" and have it be equal to a new instance of a "Person", set that instances name to "Brett" then like
|
|
|
in the previous example we are going to get if the value of "p"'s private property "name" is equal to "Brett".
|
|
|
\par
|
|
|
|
|
|
Like I mentioned before, this example might go over the head of some people as it introduces some more advanced topics, but hopefully it
|
|
|
helps to understand how you can translate the sudo language.
|
|
|
|
|
|
\begin{lstlisting}[language=php,caption={Example 2 - PHP}]
|
|
|
<?php
|
|
|
class Person{
|
|
|
private $name;
|
|
|
|
|
|
public function getName(){
|
|
|
return $this->name;
|
|
|
}
|
|
|
|
|
|
public function setname( $newName ){
|
|
|
$this->name = $newName;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$p = new Person();
|
|
|
$p->setName('Brett');
|
|
|
|
|
|
if( $p->getName() === 'Brett' ){
|
|
|
echo 'Name Is Brett';
|
|
|
} else{
|
|
|
echo 'Name Is Not Brett';
|
|
|
}
|
|
|
\end{lstlisting}
|
|
|
|
|
|
\begin{lstlisting}[language=java,caption={Eample 2 - Java}]
|
|
|
class Person{
|
|
|
private String name;
|
|
|
|
|
|
public String getName(){
|
|
|
return this.name;
|
|
|
}
|
|
|
|
|
|
public void setName( String newName ){
|
|
|
this.name = newName;
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args){
|
|
|
Person p = new Person();
|
|
|
p.setName("Brett");
|
|
|
|
|
|
if( p.getName() == "Brett" ){
|
|
|
System.out.println("Name Is Brett");
|
|
|
} else{
|
|
|
System.out.println("Name Is Not Brett");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
\end{lstlisting}
|
|
|
|
|
|
\begin{lstlisting}[language=javascript,caption={Example 2 - Node.JS}]
|
|
|
var Person = function(){}
|
|
|
Person.prototype.getName = function(){
|
|
|
return this.name;
|
|
|
}
|
|
|
Person.prototype.setName = function( newName ){
|
|
|
this.name = newName;
|
|
|
}
|
|
|
|
|
|
var p = new Person();
|
|
|
p.setName("Brett");
|
|
|
|
|
|
if( p.getName() == "Brett" ){
|
|
|
console.log("Name Is Brett");
|
|
|
} else{
|
|
|
console.log("Name Is Not Brett");
|
|
|
}
|
|
|
\end{lstlisting}
|
|
|
|
|
|
\begin{lstlisting}[language=python,caption={Example 2 - Python}]
|
|
|
class Person:
|
|
|
def getname( self ):
|
|
|
return self.name
|
|
|
def setName( self, newName ):
|
|
|
self.name = newName
|
|
|
|
|
|
p = Person()
|
|
|
p.setName("Brett");
|
|
|
|
|
|
if p.getName() is "Brett":
|
|
|
print "Name Is Brett"
|
|
|
else:
|
|
|
print "Name Is Not Brett"
|
|
|
\end{lstlisting}
|
|
|
|
|
|
This example does a better job of showing how each language can tackle the concepts in a different manner but the core concepts
|
|
|
laid out by the sudo language can still be extrapolated and translated to each individual programming language. As long as the
|
|
|
language supports the concepts. As you may notice that I left out the implementation of C in this example. It is because C
|
|
|
does not support the use of classes and objects, yes there are ways of completing this example in C using structs but that
|
|
|
is something that you should learn on your own.
|
|
|
\par
|
|
|
|
|
|
So now you have seen a few examples, hopefully enough to give you an idea of how the examples in this resource will be presented.
|