Sunday, February 27, 2011

After Shave Packaging

On the expressiveness of programming languages \u200b\u200b



Pilot - to the truly complex (for its appalling notation, for example) as Lisp or Haskell
.
There are an extraordinary range of programming languages. Each with its own philosophy. For example, is oriented Forth stack, and you have to think in those terms every time you want to generate code for these languages. There are, of course, some more expressive than others and that is the parameter to assess whether it is worthwhile to use one or another programming language. Although, of course, there are more parameters in this evaluation. why languages \u200b\u200blike Java,

C, C + +, C # and Pascal
(either
Delphi , Turbo Pascal or another that is named and based on the book by Niklaus Wirth " Pascal User's Manual and Report "), have a capacity to express more or less similar. That is, the language has provided a series of data structures that make it strong feeling-it is, we can express our ideas in the world computer programming. For example, the languages \u200b\u200bmentioned have capabilities to create arrays, dynamic and static, linked lists, pointers, etc. This allows us to create programs that do not use all available memory of the machine, but used only when needed, the amount of memory needed. Similarly, there is room for global and local variables, variables such variant , pass by value or by reference, as well as creating functions and procedures, etc. A popular program that illustrates this is Photoshop. When one wants to work with a very large image, or to make a transformation that requires a lot of graphics memory Adobe program seeks to achieve this storage to perform the task. If suddenly you notice that the system will not be enough memory, then use part of hard disk storage as "virtual memory
." It speaks to the power of Photoshop graphics program: it makes things very well, very fast and also not intimidated with gigantic images. Without blinking works with them all the resources that the computer has on hand.
But if Photoshop is only to illustrate the need for programming languages \u200b\u200bare expressive in this regard. A case is otherwise dreadful language BASIC
. As one of the first programming languages, it is clear that N transformations was to become the thousand-headed monster that is, for example the version of BASIC
called Visual BASIC
, Microsoft. But in terms of the original version of BASIC
, it suffered from data structures. At most I had arranged all variables static and all, were global. Add the lack of structure for the code where each line (numbered) was a label, under the orders of the GOTO statement , it was spaghetti code very difficult to understand. Today Visual lovers BASIC tell me that all that was forgotten and that their language meets the expressive capacities C or Pascal . Probably. But then there is one fact to consider: Visual BASIC is not easily portable to other platforms. And all this comes to mind because I am programmed in something called PicBasic Pro (PBP) , a programming language Pic microcontrollers based on the ancient BASIC. The truth is that I feel like bound feet and hands to express what I want to make my code. Pretend I have a car that for some strange reason, can only Turn right and I want to turn left. The solution? Three turns of 90 degrees to the right to go left. If we had a car, it would be ridiculous to go out with him. Well, how I feel when I have to use the PBP

. For the record, all in all, the PBP is a great help for those who wish to program microcontrollers with a high level language, removing the annoyance of having to use the assembly of the circuit. It has some virtues, but it is deplorable in expressiveness. And it's not the fault of the PBP, but the definition. Yes, it is very easy to move and some simple programming. However, as imperfect wheel drive, which prevents us from easily move to where we want. The moral is simple: Before you begin to study a programming language, discuss its expressive power. This is what can be the difference between learning to program well or perhaps have to turn around things because the chosen language lacks important data structures, which today seem to me fundamental.

0 comments:

Post a Comment