I decided I will create a dictionary for my C metacode generator so that it can analyze success of a program based on its use of words and phrases from a compile dictionary tree. The general concept is to scan files with the extension ".c" on the web and on my local machine and create a dictionary file of words that are most common. I would assume that things like "int" and "char" would be the most common words in the C language and when it was chosing at random an element to implement it can decide from a weighted list of words instead of just random combinations. It is also then possible to make a decision tree that determines how often a specific word follows another specific word or type of word.
These same concepts apply in the analysis of the genetic language of an organism. The problem with genetics is that each new organism is its own language base and though they share words, the language or the end product can be radically different. The overall logic is the same and the technique is used in DNA analysis. I could say that if organism A and B had a specific tRNA in common that it had a degree of similarity, but really, if a Japanese person says RTFM, would you presume that they speak English?
A context array will be the most convoluted aspect of this and it implies that words are common or usable in a specific context such as comments. If the context is between /* and */ the the nature of what you might expect is different. So the division of context will be the second level of analysis and at the moment nothing leaps out as a perfect way to determine if it is the right context detection. I can force it with contrived context, but I want it to devise that itself. So, context is within a ".c", sub context /**/ or {} or line or something else. So I make a framework that attempts to know what the context is first by going through it and making sections and sub-sections to the problem and then a word or sequence can be sorted by context as well as commonality.
I would suspect that a specific person would have a language use profile and that coders have a method use profile that reflects their preference and training.
I discovered some new menu items in `kate` yesterday and they are really nice. I can select a block of code and use the shortcuts "control+d" to make it a comment and "control+shift+d" to uncomment that selected code. I can also use menu 'tools' sub menu item to "pipe to console", which allows me to script in the comments or many other things. I was watching a course in using Python at MIT and it seemed that if they were using `kate` as an IDE, they could more easily demonstrate various personalities of code more quickly as I do this by having several versions of the code in the side bar and switching to them, jumping to console and executing.
In a teaching situation it requires the observer to grasp the concept and so slow application is good, but if you are doing it from a video stream, just pause until it sinks in and continue. The video online courses are really great because I can watch them, fail to grasp the concept and then come back to them in a day or so and then it is more clear. It can be boring to go over and over the lectures, but I use it like an idiot lantern that runs constantly and when I hear something that interests me or is new I perk up and listen. I suppose I am developing a dictionary of opinions and the perspective of a Yale professor, Harvard, MIT and Stanford combine to give me a better idea of what they think object oriented programming is all about. It is a way, the only way?, the final way? I doubt it. Inheritance and complexity can be a real beast and my biggest problem with all code is creeping complexity.
I have been shadowing this course "6.00 Introduction to Computer Science and Programming" in Python with examples and decided to be really compulsive and complete all the exercises including a scrabble where the computer can play itself and mainly I am just trying to be familiar with the nuances of the language so that I can apply it better in other places more efficiently. I have done several Python games already and to some extent I just muddle through and solve things as they arise. Having completed it once through I see it covers some good concepts and adds new aspects to common methods. If I had not completed several of the other courses I would not be able to make sense of some of this as it refers to things like Big O and polynomial time and general code concepts that if you can't place a definition to the words, make it choppy and distracting. It is a very good course and I recommend it to anybody who wants to take a fun slide back through Python or somebody who wants to learn for the first time.
I won't post the Python code I generate so I don't cheat somebody of the experience of doing it themselves because they have too heavy a load. I can't understand these things completely without going through the examples. There is something you learn by doing that can't be duplicated by any amount of explaining. I discovered there is a package called pyscrabble and it implements scrabble, so it is possible to find all this code already completed, but that takes all the learning fun out of the process. Some things cannot be appreciated except in the process and a person who creates the code learns much more than how to program.
0 comments:
Post a Comment