Erlang: The Movie

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

As a perfectly normal human web developer, I actually found this sort of interesting - but yeah these brits are a bit robotic :)

👍︎︎ 1 👤︎︎ u/sl_1138 📅︎︎ Apr 26 2020 🗫︎ replies
Captions
hello my name is Beorn adecco and I'm responsible for the computer science laboratory our job that is to put research to work and our main challenge that is how to program large real-time systems as efficiently as possible and after many experiments we decided that we had to move from conventional high level languages such as Ada chill C++ etc into the world of declarative programming we also found out that the only way to do that that was to develop our own language and the language which is called Ireland in this video will show you about the properties of this language and how it's been applied in large prototyping projects and also about the potentials of this language for the future the clarity programming languages have several advantages over traditional languages for example programs in such languages are considerably shorter than the equivalent programs in imperative languages here for example is a program in C and here is the equivalent program in airline they also encourage clear programming styles for example an object-oriented programming style or the implementation of an abstract data type is simple in Erlang up to now declarative programming languages such as Prolog or m/l have not been used for real-time applications so we've had to add a notion of concurrency in real-time to our language we have also added a sophisticated error detection mechanism this allows us to program robust real-time systems declarative programming languages are of course also symbolic and we'll start by showing the symbolic nature of the language in a typical telephony application airline is a real-time declarative programming language but in order to experiment with such languages you need more just a computer you need a real-world application and real hardware to run it on let's go into our lab to see how we've done this on this application is based on telephony we have programmed an Ericsson md-11 zero p ib x this p ib x you see here using airline but that's not really quite true because we've changed the standard md-11 zero very very slightly so that it communicates with the cern workstation and the airline programs we are going to be running are actually running on that sun workstation not on the PBX itself this has been done by connecting the hardware signals through from the PA BX to the workstation and vice versa here is our standard airline environment we running X Windows on a Sun workstation we have an airline interpret window here and an Emacs editor window here ok let's just make a normal call just to see that the system works hello Mike hello Joe system working seems to be okay fine okay right we're going to do that again only this time we're going to look at some of the symbolic information that's available in the system while we're placing a call I'm going to dial Mike again one six seven what we see here is a symbolic trace the communications to and from the number analyzer it first received the message analyze one it returns a result get more digit it then received the request to analyze the digits one six and again return the result get more digits and lastly it received the request to analyze the digits one six seven it then returned fort 67 which signifies a hardware address of a telephone hour now dial an incorrect number one six nine here again we see a symbolic trace of the communications to inform the number analyzer again it got the request to analyze the digit 1 and return the result get more digits then it got the request to analyze the digits 1 6 and again return the result get more digits finally it returned that it got the request to analyze the digits 1 6 9 but this time it returned result invalid as this number is invalid okay we've just shown you one of the properties of the language that is a symbolic language and that symbolic information is always available and I like to show you another property of the language and that is how we handle errors and in order to show you this that I'm first going to make a perfectly normal call as I did before to Joe from this telephone hello Joe hello Mike okay I'm now going to leave this call set up from this phone here and I'm going to make another phone call to Joe on his other telephone that will use this phone here hello hello Joe okay that we have now made a call to Joe I'm going to make a call to Robert hello robert hello Mike well I had now have a phone call set up to Joe and want to Robert of course I can go backwards and forwards between the two of them hello Joe hello Mike hello robert hello Mike well now I'm going to do something which means that the system goes wrong and what I'm going to do is that I'm going to try and put the calls into a conference so I'll press this button here which should put them into a conference and as we can see by the screen things are starting to go wrong we see here that something has gone wrong an error has recurred here is the original error which caused all the subsequent errors it also caused those paths the system taking part in that error to automatically restart themselves for example here is one of the telephones part in the call which crashed and will subsequently be restarted automatically by the system we shall now try and find out what caused the original error we see that something was undefined we also see that it was the function M multi in the module feature which was undefined we shall now go into the module feature and try and correct the error we're now in the module feature who will try and find the call to M multi now I know there is a function called just ball T so this seems like it could be a spelling error we will try and correct it save the file and load it again into our lung and see if it works we are now back in the airline window and we'll load in the corrected module feature and restart the system to see if we actually corrected the error let's see if Robert succeeded in fixing the error I'll do the same thing again first I'll make a call to Joe hello Mike hello Joe and I'll make a call to Robert hello Mike hello Roberts now I'll press the conference button and see if it works this time hello Joe hello Mike hello robert hello Joe hello Mike hello will it work this time well I'll leave John Robert to talk to each other and go out of the conference hello robert hello Joe I think you managed to fix the bug then yes finally do you remember before we went into conference we set up a call well let's see if that call is still running hello Mike hello Joe okay I'll finish this call well what you've seen now is that this call was totally undisturbed by the fact that we have had an error in the system in other calls that we've reloaded parts of the system software this call here still worked and the interesting thing is it would have continued to work whatever state the call was in it could have been ringing we could have been dialing we could have been between dialing digits whatever had happened calls in this system are completely independent in e of each other so an error in one call will never affect error an error in one call will never affect the correct operation of other calls you have just seen our language airline and the telephony application which we run using airline but in fact our application contains many more features what we've implemented is hot number warm number short number diversion diversion on busy 911 emergency blacklisted incoming numbers transfer conferencing directed call pickup waiting on busy call waiting on no answer and intrusion airline has been used outside our laboratories by Ericsson for a large scale prototyping experiment their findings agreed completely with ours programming in airline leads to at least a factor 10 improve programmer productivity airline programs are concise and elegant in fact they are about 7 times shorter than equivalent programs written in C it's easy to write robust systems in airline and of course all this leads to very short lead times
Info
Channel: uncertainyesterday
Views: 124,041
Rating: 4.965517 out of 5
Keywords: googlevideo
Id: xrIjfIjssLE
Channel Id: undefined
Length: 11min 31sec (691 seconds)
Published: Thu May 03 2012
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.