Jump to content
IGNORED

New Atari Compiler Dev


Gip-Gip

Recommended Posts

[...]For example it blows me away that compilers are not near instant builds. We're still using text files for crying out loud.[...]

The hardware caught up a while back, at least for this stuff. For 2600 games on modern hardware, dasm is pretty much instant. On my not-so-beefy 6 year old W510 laptop, versions of 2600 Berzerk and Q-bert compile in less than 1/10th of a second. Even 64k batari basic games, which have an extra layer of compiler->assembly take less than 2 seconds.

 

Gone are those days of grabbing a coffee while the assembler does its work.

Link to comment
Share on other sites

Thinking that someone without much knowledge in a specific area of decade-old research can come up with something new by ignoring tried and true methods is hubris in my book. I mean, it's not like those generations of researchers with a solid education in the field who tried to think outside the box to come up with something new for their research papers have all been idiots. ;)

 

But hey, I'd be more than happy to be proven wrong. :)

  • Like 4
Link to comment
Share on other sites

Thinking that someone without much knowledge in a specific area of decade-old research can come up with something new by ignoring tried and true methods is hubris in my book. I mean, it's not like those generations of researchers with a solid education in the field who tried to think outside the box to come up with something new for their research papers have all been idiots. ;)

 

But hey, I'd be more than happy to be proven wrong. :)

 

I disagree but excellent attitude Kylearan! :)

 

I'll try:

 

Comp-sci professors would agree with your statement word for word (curious if one of your professors related this?) and get offended that someone focused on developing a new idea is somehow asserting that all of their research papers and academic associates are idiotic.

 

But researchers with a solid education in the field generally maintain the status quo as Dan observed which is certainly idiotic; new ideas and technologies are almost always introduced by amateurs in the field (non-academics) with bright minds.

Edited by Mr SQL
Link to comment
Share on other sites

 

But researchers with a solid education in the field generally maintain the status quo as Dan observed which is certainly idiotic; new ideas and technologies are almost always introduced by amateurs in the field (non-academics) with bright minds.

 

That's quite an assertion, one that I am very skeptical of. If you aren't familiar with the existing body of research how would you know if your idea is new? You could waste a lot of time on R&D, only to discover after the fact that your break through idea has already been thoroughly researched and documented.

 

Regardless of how AtaC is built it has already presented some new and innovative ideas.

  • Like 1
Link to comment
Share on other sites

 

That's quite an assertion, one that I am very skeptical of. If you aren't familiar with the existing body of research how would you know if your idea is new? You could waste a lot of time on R&D, only to discover after the fact that your break through idea has already been thoroughly researched and documented.

 

Regardless of how AtaC is built it has already presented some new and innovative ideas.

 

A programmer has already been exposed to compilers and languages so I think a better way to guage the question is how much more familiar is it necessary to be with the existing body of research?

 

Should Gip-Gip study books on language and compiler design? Should he study many books on the subject or one or two really good books? Should he study Zork and Eliza?

 

These are great questions to explore and all of these approaches have merit; one method to mastering Chess is to study a huge volume of books on opening moves and advanced gambits. Other methods are just playing or hyper modern and all three methods have produced Chess champions.

 

Agree AtaC has already presented new and innovative ideas.

Link to comment
Share on other sites

Bankswitching.

Are you going with a single way of bankswitching?

What about compiling with added RAM in the cartridge?

 

Every company that sprang up had to design their own bankswitch method.

I guess unless they pirated another's method, I would guess.

There's so many methods it is amazing that Stella and Harmony cover them all.

 

New methods are still invented and proposed, like 4A50 bank-switching.

Don't know much about it or understand it, except that it says, "It allows programs to use 64K of ROM and 32K of RAM with previously-unparalleled flexibility."

I don't know if it was ever built, or if the Harmony Cart emulates it. (The Harmony Cart emulates the DPC+ chip which wasn't ever made into a real chip.)

I like the idea of bank-switching a large ROM with added RAM, and not having to give up programming space in the 4K banks.

 

I don't know what to comment on about a new programming language, I'm a novice programmer.

Keep going if you are having fun, or if you create something that is a useful tool for yourself, and hopefully others.

Link to comment
Share on other sites

Bankswitching.

Are you going with a single way of bankswitching?

What about compiling with added RAM in the cartridge?

 

It will either be a compiler argument(like NTSC and PAL selection) or a handler inside of code. I haven't gotten to that point yet.

Link to comment
Share on other sites

 

A programmer has already been exposed to compilers and languages so I think a better way to guage the question is how much more familiar is it necessary to be with the existing body of research?

 

Should Gip-Gip study books on language and compiler design? Should he study many books on the subject or one or two really good books? Should he study Zork and Eliza?

 

These are great questions to explore and all of these approaches have merit; one method to mastering Chess is to study a huge volume of books on opening moves and advanced gambits. Other methods are just playing or hyper modern and all three methods have produced Chess champions.

 

Agree AtaC has already presented new and innovative ideas.

 

No offense, especially to AtaC, but I don't see anything actually new and/or innovative. I am all for encouraging experimentation, believe me, and if you wind up going over old ground,well so what, you probably learned something. And there *is* a chance you'll come across something actually new, it's just a very small one. If you add 'useful' to that, it gets smaller. So look at the modern computer language pallette today; there's tons of duplicative languages...how come the 'best' one didn't crush all the others? Well, because 'best' is a complicated and ultimately subjective thing. So if you do something thats basically the same as something else, but has a different flavor or feel or look or emphasis on a particular subset of functionality, then there's a group that will use it over other things even though its basically the same.

I don't buy into the common romantic notion that 'most discoveries are made by non-academics'. The world is more boring and ordinary in this regard than the media would like it to be, but I think most legit discoveries are made by paid researchers nowadays. If you add 'world shaking, truly fundamental and paradigm changing' to 'discoveries', then you get a better ratio I think but I would expect that academics and business would still win. I am not certain, as I've not seen any statistics and am too lazy to look them up.

  • Like 1
Link to comment
Share on other sites

If someone tried to use the compiler for commercial purposes they would be lacking an assembler :)

Just to be clear, you can use a GPL licensed assembler to assemble non-GPL binaries. You can also redistribute GPL programs with commercial programs, provided they remain separate programs that communicate as separate programs normally do. (and adhere to the GPL license for the GPL programs themselves, of course). See the GNU comments on mere aggregation for more info.

Link to comment
Share on other sites

Just to be clear, you can use a GPL licensed assembler to assemble non-GPL binaries. You can also redistribute GPL programs with commercial programs, provided they remain separate programs that communicate as separate programs normally do. (and adhere to the GPL license for the GPL programs themselves, of course). See the GNU comments on mere aggregation for more info.

But you cannot distribute the code of DASM commercially. If I wanted to integrate DASM code(which was the original suggestion) I would have to distribute separate lib files. I honestly have more will to make a custom assembler than to set up a system like that.

 

I don't have a need for shipping DASM with AtaC anyways, as that would just add another step(and with current plans, it will be easier to implement direct code generation).

Edited by Gip-Gip
Link to comment
Share on other sites

But you cannot distribute the code of DASM commercially.

Sure you can, you just can't relicense DASM. That doesn't mean you can't sell it (alone or in a bundle with non-GPL software). You just have to comply with the GPL license terms for DASM itself.

 

 

If I wanted to integrate DASM code(which was the original suggestion) I would have to distribute separate lib files. I honestly have more will to make a custom assembler than to set up a system like that.

I doubt anybody here meant literally compile them together into a single executable (or create a library from DASM), so much as have your program generate assembly files and then call the separate DASM executable to assemble them. Thats permitted under the GPL "mere aggregation" clause.

 

I'm not trying to convince you of doing anything here. It's your project. I just wanted to point out the facts of the licensing, to avoid having people pick up false info.

  • Like 2
Link to comment
Share on other sites

Comp-sci professors would agree with your statement word for word (curious if one of your professors related this?)

I've been working as a computer scientist (IT security, not compiler architecture ;)) at a university for a couple of years. I've published several research papers and peer-reviewed for several research conferences over the years. My opinion on that matter comes from that experience.

 

new ideas and technologies are almost always introduced by amateurs in the field (non-academics) with bright minds.

That's a bold statement I seriously doubt, especially when it comes to mature, well-researched scientific areas. Do you have any examples?

Note that I don't mind the "non-academics" part of that statement. What triggered my initial reaction was the idea that it should somehow be better not to educate oneself on what's already been done.

 

There are so many computer scientists competing for grants, publications and titles who all try to come up with a new revolutionary idea. Thanks to their solid education, they know what has already been tried, what worked and what did not work and most importantly, *why* it had worked/not worked. This vast community experience will more than outweigh the bias introduced by a field's traditions.

 

 

Anyway, AtaC is a hobby project done for the fun of it, which is great! I'm surely be interested to see what Gip-gip comes up with, and the VCS scene has a lot of room for frameworks and tools which will be helpful even though they won't revolutionize science (they don't need to!).

 

It's just the notion of "You don't need knowledge about a mature field to come up with something better, it might even hinder you" which really irks me. That's not how science and improvement works.

 

Sorry to Gip-gip for derailing his thread! :)

  • Like 3
Link to comment
Share on other sites

Sure you can, you just can't relicense DASM. That doesn't mean you can't sell it (alone or in a bundle with non-GPL software). You just have to comply with the GPL license terms for DASM itself.

 

 

 

I doubt anybody here meant literally compile them together into a single executable (or create a library from DASM), so much as have your program generate assembly files and then call the separate DASM executable to assemble them. Thats permitted under the GPL "mere aggregation" clause.

 

I'm not trying to convince you of doing anything here. It's your project. I just wanted to point out the facts of the licensing, to avoid having people pick up false info.

My bad, I just read the actual license.

 

It's only been a year since the first time I read it ;)

  • Like 1
Link to comment
Share on other sites

Kylearan and danwinslow - excellent points, here's my perspective on them.

 

Couple of general science examples:

 

A farmer invented Television.

 

Professional astronomers are so busy writing scientific papers that nearly all new celestial bodies discovered in the last 100 years have been found by amateur astronomers.

 

More direct examples with computer science:

 

Gates dropped out of Harvard because he was busy writing what would become the most popular programming language with friends from his computer club.

 

Linus wrote a better faster UNIX OS that took a village at Berkley; he utilized one really good book.

 

Contemporary academics scolded Gates and Linus both along exactly the same lines you both expressed - this kind of behavior offends computer science professors because the programmers didn't fit their rigid way of thinking (long way around the barn) but obviously found a different path, something spectacular; I think this is what Dan was getting at.

 

In Linus case the offense didn't stop there, he apparently went out of his way to write code that particularly offended them and was "the wrong way to write code", at least according to folk who teach coding. Part of the problem in academia is that academics tend to close their minds when they should always be learning and thus maintain the status quo.

 

Linus was one guy. Gates wrote an incredible runtime.

 

imo Gip-Gip has potential and new ideas so shouldn't worry about offending computer scientists with a hobby project.

 

Kylearan from what I've seen of your work in the demo scene, you have potential too - there's pressure to fit the mold in academia but great discoveries waiting to be explored for bright minds who can peel back those restrictive layers and think outside the box.

 

My perspective comes from having learned from immersion in a programming club (alternative IT education) from a young age; my research papers are on my site, I haven't published them in academic journals but have recieved multiple offers from large corporations on the innovative technologies (frameworks, languages, IDE's, source control).

Edited by Mr SQL
  • Like 1
Link to comment
Share on other sites

@Mr SQL

 

I feel like you are being very arrogant and greatly discounting the opinions of others. Please look at your argument from the other side of the fence.

 

 

I wrote an expression parser both pre- and post- computer science education. The post-education was way more functional than the original and was quicker to develop because I had other ideas to work from. The resulting code was clearly a mix between the two. Could I have made it better without knowledge gained from my education (compiler-design college course)? Probably, but it would have taken me a lot longer to discover things on my own.

 

It's possible that education can be detrimental BUT ONLY if you refuse to think outside the box. I would ask that YOU think outside the box of arguments you continue to make. Please try to see things from both sides.

Edited by splendidnut
Link to comment
Share on other sites

Since I feel to make my point clear on the argument about compiler theory:

 

I am not necessarily going by any design I came across, I'm just doing this the way I see the most fit. The way I see it the most fit it passing the string through multiple functions that process it into the final binary output. The lack of an stand-alone parser/lexical analyzer is just because I find it inefficient and messy to include one, as the same output can be achieved with little modification to the base string(without nested if statements or any other ugly code).

 

Again, if you have a better idea, please tell me. I already have a compiler laid out in my head, and some of it is already in code, but if your method is better I will more than likely use it :)

 

P.S. This is not related at all but I think I'll use roman numerals for the next version number(because they look cooler). What are your thoughts?

  • Like 1
Link to comment
Share on other sites

@Mr SQL

 

I feel like you are being very arrogant and greatly discounting the opinions of others. Please look at your argument from the other side of the fence.

 

 

I wrote an expression parser both pre- and post- computer science education. The post-education was way more functional than the original and was quicker to develop because I had other ideas to work from. The resulting code was clearly a mix between the two. Could I have made it better without knowledge gained from my education (compiler-design college course)? Probably, but it would have taken me a lot longer to discover things on my own.

 

It's possible that education can be detrimental BUT ONLY if you refuse to think outside the box. I would ask that YOU think outside the box of arguments you continue to make. Please try to see things from both sides.

 

@splendidnut, I've been writing parsers for 30 years and I'm still learning.

 

my perspective is that no one can finish their education.

 

imo one reason the environments of early computer clubs precipitated learning better than academic programs is because everyone there was learning, no matter how advanced they were, and so no one was pompous.

 

Mark Twain identified the problem with academics being pompous and found a great solution:

 

I never let schooling get in the way of my education.

 

They're not the same - Schooling is pompous so words like arrogant and idiot enter the conversation.

 

With education we just talk about ideas.

  • Like 1
Link to comment
Share on other sites

Since I feel to make my point clear on the argument about compiler theory:

 

I am not necessarily going by any design I came across, I'm just doing this the way I see the most fit. The way I see it the most fit it passing the string through multiple functions that process it into the final binary output. The lack of an stand-alone parser/lexical analyzer is just because I find it inefficient and messy to include one, as the same output can be achieved with little modification to the base string(without nested if statements or any other ugly code).

 

Again, if you have a better idea, please tell me. I already have a compiler laid out in my head, and some of it is already in code, but if your method is better I will more than likely use it :)

 

P.S. This is not related at all but I think I'll use roman numerals for the next version number(because they look cooler). What are your thoughts?

 

Please don't think I'm trying to drive your opinion on the matter... I actually agree with you're approach here of a lean-mean compiler machine.

 

 

 

 

 

Comp-sci professors would agree with your statement word for word (curious if one of your professors related this?) and get offended that someone focused on developing a new idea is somehow asserting that all of their research papers and academic associates are idiotic.

 

 

 

@splendidnut, I've been writing parsers for 30 years and I'm still learning.

 

my perspective is that no one can finish their education.

 

imo one reason the environments of early computer clubs precipitated learning better than academic programs is because everyone there was learning, no matter how advanced they were, and so no one was pompous.

 

Mark Twain identified the problem with academics being pompous and found a great solution:

 

I never let schooling get in the way of my education.

 

They're not the same - Schooling is pompous so words like arrogant and idiot enter the conversation.

 

With education we just talk about ideas.

 

Yes we never stop learning, either thru more education, experiments, or just by general experiences.

 

I don't think you are an idiot. Maybe a little arrogant, but not an outright idiot. And that I say from my general experience of you thru-out the forums here. I wish you were a better arguer, as I wish I was too.

 

Please don't think that I am trying to "school" your here. You have valid points that I agree with.

 

Education is can be both a blessing and a curse, but it's ultimately the individual who determines where they land.

 

I would suggest Steve Wozniak as a better example of someone who basically discover/invented his own way of doing things. He wrote Integer BASIC from scratch without any formal education in compiler/interpreter design. He designed the parser/interpreter how he thought it should work. He only used a BASIC users manual as his guide. :)

 

Interestingly enough, Woz's parser/interpreter was much faster and more efficient than Microsoft's even if you account for the difference in floating point support.

  • Like 1
Link to comment
Share on other sites

 

Yes we never stop learning, either thru more education, experiments, or just by general experiences.

 

I don't think you are an idiot. Maybe a little arrogant, but not an outright idiot. And that I say from my general experience of you thru-out the forums here. I wish you were a better arguer, as I wish I was too.

 

Please don't think that I am trying to "school" your here. You have valid points that I agree with.

 

Education is can be both a blessing and a curse, but it's ultimately the individual who determines where they land.

 

I would suggest Steve Wozniak as a better example of someone who basically discover/invented his own way of doing things. He wrote Integer BASIC from scratch without any formal education in compiler/interpreter design. He designed the parser/interpreter how he thought it should work. He only used a BASIC users manual as his guide. :)

 

Interestingly enough, Woz's parser/interpreter was much faster and more efficient than Microsoft's even if you account for the difference in floating point support.

 

Great example with the Woz! :)

 

Kylearan related that comp-sci folk feel individuals who choose an alternative path must think they're idiots; I did not bring that into the conversation.

 

My opinion is that they feel that way from having learned to be pompous - that is Twain's observed schooling effect which everyone would do well to avoid since it greatly inhibits further learning and you end up calling folk arrogant who have been programming forever and written programming languages from scratch without formal schooling in compiler/interpreter design, but obviously plenty of education - how else do you imagine that would be possible?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...