Entradas

Technical Overview of the CLR

I didn't like Java even before I knew how to use it, but I liked some things programmed in that language, Minecraft was a good example, but I always remembered that when I played that game I had to put the game configuration in the low resolution and the lowest possible configuration, because the game needed a lot of resources from the computer, so I couldn't run the game properly and enjoy the play. That was before high-school, but I already liked Computers and some tech things back then, I didn't knew how to program complex applications, but I knew a few things, one of them was related to the game, I knew it was programmed in Java, and in that time we said that the game was so slow because of Java's garbage collector and other stuff,  I actually didn't verified this thing until I encounter myself with a open-source Minecraft called Minetest, which was a game programmed with C++ using Irrlicht Graphics Library, and it was a very good "copy" of Minecraft,

Building Server-Side Web Language Processors

Practice gives all the previous knowledge into test, where students can develop platforms/applications in order to understand easily concepts viewed before on past courses. Web platforms are very attractive because nowadays everyone uses a browser, and now many of the development is linked to web platforms, many speculate that web technologies are the path of future approaches. All concepts learned in Computer Science courses can be easily presented in ways which students may like very much, in the case of Building Server-Side Web Language Processors, takes concepts from courses like Compiler Design and Programming Languages into a practical way, developing such applications gives the students a bright idea and concept of what they are programming. Learning is very fun, but with the right tools it could be a lot better and enjoyable. Like it is mentioned on the article: “web programming promotes diversity in computer science because the programs are more motivating to a divers

Ruby and the Interpreter Pattern

It is very interesting using programming languages to create tools for learning or for proving certain relevant topics in programming languages, in this case SIF, S-Expression Interpreter Framework, which allows the programmer to create Language Design implementation, using interpreter pattern, and proving and knowing concepts which are interesting and important while talking about programming languages. This tool allows teaching about language design and implementation, and proving and using concepts such as stacks, queues, hash tables, regular expressions and context free grammars. Sometimes programming languages can be used as a tool for teaching concepts previously presented in a practical way, sometimes certain functionality from some programming languages allows the expansion from its general scope, which allows the programmer expand their creativity in order to create new things. Viewing examples, in a practical way, makes the reader more attracted to the topic and

Mother of Compilers

There are a lot of historical events which haven’t being presented openly jet, for example the history from Grace Hopper. It is very interesting knowing everything about her life and the evolution of the field in computer science, her vision and passion made technology what is today, the idea of creating the first compiler, which translates a “universal” language into machine code, available in many machines and easier to understand, managing the expression of a high level language into calculations for a machine, which is a big step of processing information in an efficient and more easy way. Women had worked in this field for many years, being also the pioneers of computer science, now a days it is not surely known how many women contributed to this field and their names, but Grace Hopper stands in the representation of all the women who had put their effort and talent into the evolution of technology, and not only technology, this may be applied to other fields and areas.

Episode 61: Internals of GCC

When I started to listen to the podcast I was writing every word that popped my attention; And I started to thinking about the functionality of the gcc compiler, during the podcast there was mentioned that the compiler's core makes machine code to program translate language abstraction. I was thinking about making an experiment, where with some code  I could manage to create a simple Web Page that with the knowledge of the first phase of compiler's design, every regular expression will be shown and animated with colors and samples, I call this JSSampler Here are some of the few words I recorded: compilers research PhD student graduating static analysis language implementations Java JVM embedded systems relevant compilers modern machines car machines current what you need how does it work? plain text semantic content context source files representation transform object code platform portable Pentium power pc spark equivalent efficient

The Hundred-Year Language

To binary expressions to a language that abstracts ideas and translates them into machine code. Different programming languages had been created in order to complete or satisfy certain tasks, the designs of new languages are being made and performed, as the time passes the evolution of language design are being performed by the community, more people are being involved into the creation, and modification of programming languages. It is a co-evolution, in order to create the hundred-year language, the hundred-year hardware must be created to, the way of the functionality of the hardware and software have to be precise, the interpretation of the language should generate the precise mathematical instructions. Maybe the hundred-year language will be an autonomous system which enriches it's vocabulary with the input of an user, or even with the input from the environment. The abstraction of the language will be limitless because it can be learned from it's usage, there is an imp

Making Compiler Design Relevant for Students

Designing a Compiler is not an easy task, so building and designing an entire Compiler from scratch in one semester is a very ambitious task . For that many teachers have managed to create certain tasks that involve the important parts to know about a Compiler and it's design, in order to understand it and not getting stuck in the creation of one from scratch. An interesting activity that it is given to the undergraduate students from the University of Arizona, is using lex and yacc to create a translator from LaTeX to HTML, which end ups being a very useful tool for academics, learning compiler analysis, students may have the tools and resources to create abstraction from problems and implement a certain translation in order to dictate even hardware what to do. I image about using this topics and mix them together with intelligent systems, that a compiler can manage to change itself by the process of learning of the language that it is given to it, one condition is the defin