00:00:44 -!- coppro has joined.
00:14:36 -!- poiuy_qwert has quit (Quit: Leaving).
00:20:55 -!- poiuy_qwert has joined.
00:24:56 -!- augur has joined.
00:35:03 <CakeProphet> is the documentation, and the ease of programming.
00:35:26 <CakeProphet> the features are lacking, however. And there's some odd things it doesn't do that could be better.
00:35:46 <CakeProphet> Jython and IronPython are better for portability.
00:40:54 <CakeProphet> you know... there should almost be a bot to handle bots.
00:41:34 <CakeProphet> just MSG them with the username and the command.
00:42:11 <CakeProphet> and it would give them unique names and help keep track of the symbols they use and all that.
00:43:15 <CakeProphet> so we could just quickly write a command bot.
00:44:29 -!- jabb has quit (Quit: Page closed).
00:45:29 -!- MizardX- has joined.
00:45:32 -!- MizardX has quit (Read error: Connection reset by peer).
00:45:56 -!- MizardX- has changed nick to MizardX.
00:49:54 <coppro> awesome, I'm going to Montreal!
00:50:37 -!- coppro has quit (Remote host closed the connection).
00:51:02 -!- Oranjer has left (?).
00:51:04 -!- coppro has joined.
00:51:22 <CakeProphet> I was thinking it would actually be easier just to make the bot a self-hosting chat-room for all parties involved.
00:51:51 <CakeProphet> you could even set up a text-based adventure engine.
00:52:03 * CakeProphet doesn't know how this esoteric... but he feels like programming something.
00:52:17 <CakeProphet> could easily make some interpreters for it too.
00:55:54 <coppro> to make it esoteric, just prove it is/isn't Turing-Complete
00:59:29 <CakeProphet> hmmm... how about it controls the state of two infinite arrays and a automata cell-grid with two ends.
01:00:27 <CakeProphet> the arrays point contain natural numbers pointing to a coordinate on the cell, in either polar or cartesian coordinates.
01:00:38 <AnMaster> <Rugxulo> but it's not as impressive as AnMaster (CFunge) and Deewiant (CCBI)
01:02:06 * CakeProphet has a wide variety of impressive accomplishments. ....
01:02:58 <AnMaster> oh btw I realised I could use my Lego IR remote as a computer remote if I wanted to
01:03:22 <AnMaster> after all I have can get the messages with the lego usb IR tower thingy
01:03:48 <AnMaster> CakeProphet, but fairly useless since I can't think of anything to control on the PC
01:03:56 <AnMaster> I'm within reach of it all the time anyway
01:04:01 <AnMaster> and I use it for the lego thing
01:04:08 <CakeProphet> AnMaster: speaker volume from far away for a bedroom desktop or what have you.
01:04:19 <AnMaster> CakeProphet, bedroom != computer room
01:04:28 <AnMaster> I use headphones when listening
01:04:33 <CakeProphet> same here... but it's also my computer room.
01:04:36 <AnMaster> and my desk chair is *very* comfy
01:05:08 <AnMaster> it has 4 levers and one wheel thingy
01:05:19 <AnMaster> forgot those for the arm rests
01:05:32 <CakeProphet> so yeah I wonder how polar coordinates would effect programming logic
01:05:45 <AnMaster> the first one is to set friction in the tilting
01:05:53 <AnMaster> the other are various armrest settings
01:06:04 <AnMaster> idea: add motors then use the remote for that
01:06:14 <AnMaster> nah I don't want to void warranty
01:06:30 <CakeProphet> if the two arrays are the polar coordinates... what would the automata represent?
01:08:56 <CakeProphet> dynamic languages are good for bots because they're quick to write.
01:09:54 <AnMaster> CakeProphet, in case you are now all confused about that comment, I wrote: https://launchpad.net/envbot
01:11:42 <CakeProphet> I might use Perl instead... good idea or bad?
01:11:50 * CakeProphet should learn Perl... no way to do it just by reading.
01:22:13 <CakeProphet> a virtual OS so that we can hack it and make esoteric system designs.
01:26:11 -!- Rugxulo has joined.
01:36:36 <CakeProphet> the virtual OS can be run on any physical machine that can host the software.
01:37:03 <calamari> why not use x86, then it can be run native
01:37:23 -!- Oranjer has joined.
01:37:28 <CakeProphet> that significantly increases the amount of work you have to do supporting drivers.
01:38:11 <calamari> depends on if you use the bios
01:39:10 <CakeProphet> you know tcl is a pretty good scripting language.
01:39:11 <calamari> the only reason I bring this up is that it is extremely satisfying to put in a floppy or cd and boot your os without having to run it on a virtual machine
01:39:24 <CakeProphet> I think I'd prefer it over bash as a system-wide scripting language.
01:39:37 <CakeProphet> calamari: I lack the experience unfortunately.
01:40:24 <calamari> well assuming that your os isn't trying to do anything groundbreaking with hardware (text displays, etc) it's not too bad really
01:40:57 -!- augur has quit (Ping timeout: 264 seconds).
01:41:27 <calamari> I meant that with the bios you don't have advanced features
01:42:10 <calamari> it'll run under qemu, if that's what you are asking
01:42:25 <calamari> and many many real machines with a pc bios
01:43:00 <calamari> I've written BOS, a BF-based "os"
01:43:16 <calamari> used assembly language and fit it into a single 512-byte floppy sector
01:44:02 <CakeProphet> I'd be willing to work on an OS project, just to get the hang of it.
01:44:28 <calamari> well that is again why I brought this up
01:45:06 <CakeProphet> in the past I've discovered that my OS designs lack from any real experience with hardware.
01:45:16 <calamari> in college I took an os course, and we used a proprietary virtual machine to write our os.. at the end of the semester we had something basically to throw away and never use again
01:45:17 * CakeProphet started on scripting languages like Python, and then worked down.
01:45:40 <calamari> couldn't boot it.. couldn't run any programs on it
01:46:15 <CakeProphet> when I get more disk space I'd love to have a dual-boot OS of my own or partial creation. :D
01:46:47 -!- coppro has quit (Remote host closed the connection).
01:46:52 <calamari> there have been many false starts at ESO (the esoteric operating system)
01:47:03 <calamari> never got past very basic design though
01:47:06 -!- Halph has joined.
01:47:19 -!- Halph has changed nick to coppro.
01:47:34 <calamari> that dates back to the mailing list days
01:49:18 -!- ski has quit (Remote host closed the connection).
01:49:22 -!- ski has joined.
01:49:27 <CakeProphet> and not try to add the esoteric into the early design.
01:50:08 <calamari> and probably why the projects always failed
01:51:04 <CakeProphet> that's what tends to happen with most OS brainstorms I've ever had
01:51:40 <CakeProphet> I'd actually like to learn assembly programming.
01:52:39 <Rugxulo> if that doesn't help, nothing will
01:54:24 -!- ski has quit (Ping timeout: 264 seconds).
01:55:54 -!- ski has joined.
01:55:56 <CakeProphet> calamari: so do you want to put some work into designing a basic OS and I could do some gruntwork?
01:57:04 -!- augur has joined.
01:57:20 <Rugxulo> http://sites.google.com/site/octaviovegafernandez/octaos/
01:58:07 <Rugxulo> (hmmm, download seems down on latter, but I know it's on www.sac.sk , so it's no biggie)
02:00:55 <Rugxulo> FASM needs no linker, self-hosting, multiple OS format support, etc.
02:01:00 -!- ski has quit (Ping timeout: 264 seconds).
02:01:16 -!- ski has joined.
02:01:34 <calamari> oh it's open source too.. okay cool
02:04:54 <Rugxulo> yup, plus faster than NASM
02:08:51 <calamari> I used nasm for mine, so a linker isn't really required
02:12:56 <CakeProphet> but does anyone want to team up on a prototype OS?
02:13:30 <CakeProphet> I intend to contribute no design decisions until I gather more experience... so that should make things faster.
02:14:42 <calamari> sure but I don't know how much help I'd be if you are trying to make it elegant
02:15:23 <CakeProphet> the core guys should just be simple and fast.
02:15:30 <calamari> well all I'm saying is that my design decisions wouldn't necessarily be any better than yours and they could be worse
02:16:14 <Rugxulo> ask on FASM's forum, lots of hackers there
02:16:16 <calamari> the class I took wasn't realistic in any way
02:16:56 <calamari> I could definitely make something that boots
02:17:30 <CakeProphet> calamari: no they'd be better because I know absolutely nothing about assembler or how OSes are programmed.
02:17:41 <CakeProphet> all I have is a basic understanding of hardware... nothing in detail.
02:19:06 <calamari> one thing about hard drives.. the bios won't be able to use the whole thing, and as far as real drivers I am no help
02:19:47 <calamari> but it'll definitely be fine for smallish drives and partitions
02:20:29 <CakeProphet> is there any way it can be designs so that drivers can be done after the fact?
02:20:39 <CakeProphet> or does that require a completely different design?
02:20:40 <calamari> I've also never learned much about protected mode programming, so it'd be running in real mode
02:20:54 <calamari> although I have some books and would be willing to experiment
02:21:13 <Rugxulo> er, on second thought, if you want to use emulators, don't do that ;-)
02:21:46 <calamari> if I remember what unreal mode is, you are peeking into extended memory from real mode, right?
02:22:07 <calamari> by exploiting that ffff:ffff is larger than 640k
02:22:09 <Rugxulo> basically switch to pmode, set the selectors to 4G, switch back, voila, all RAM is available
02:22:31 <calamari> who knows, qemu might handle it
02:22:41 <Rugxulo> FASM itself (DOS version) can run in either unreal or under DPMI
02:22:55 <Rugxulo> no, I think most emulators don't handle it correctly, hence why he eventually added DPMI
02:23:22 <calamari> well I have a book that explains how to switch into protected mode, I just never needed it
02:24:16 <Rugxulo> it's quite annoying (not that I really have messed with it)
02:25:29 -!- JodaZ_ has joined.
02:25:55 -!- augur has quit (Ping timeout: 245 seconds).
02:25:57 -!- JodaZ has quit (Ping timeout: 258 seconds).
02:26:29 <calamari> come on youre an esoteric language fan.. annoying is good
02:27:31 <calamari> if tanenbaums minix book weren't so expensive, I'd love to get a copy of that
02:27:38 -!- CakeProphet has quit (Ping timeout: 240 seconds).
02:27:39 <oerjan> ^ul ((ANNOYING IS GOOD)S:^):^
02:27:39 <fungot> ANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNOYING IS GOODANNO ...too much output!
02:28:38 -!- CakeProphet has joined.
02:31:31 -!- SevenInchBread has joined.
02:33:22 -!- CakeProphet has quit (Ping timeout: 248 seconds).
02:35:49 -!- CakeProphet has joined.
02:35:52 -!- CakeProphet has quit (Changing host).
02:35:52 -!- CakeProphet has joined.
02:36:19 <oerjan> no longer hanging by a thread
02:37:14 -!- SevenInchBread has quit (Ping timeout: 260 seconds).
02:40:51 -!- SevenInchBread has joined.
02:40:57 -!- CakeProphet has quit (Ping timeout: 264 seconds).
02:43:06 -!- Rugxulo has left (?).
02:45:50 -!- SevenInchBread has quit (Ping timeout: 276 seconds).
03:03:21 -!- CakeProphet has joined.
03:15:48 -!- Adrian^L_ has joined.
03:48:05 -!- Gregor has joined.
04:07:04 <calamari> Gregor: you ever messed with writing linux filesystem drivers (non-fuse)?
04:08:18 <calamari> crashes constantly.. can't rely on it for a rootfs
04:12:41 <Gregor> I've used it for a root FS.
04:13:07 <oerjan> Gregor: so is that why HackEgo keeps crashing all the time? *ducks*
04:13:10 <calamari> you didn't get a bunch of endpoint disconnected crap
04:13:30 <Gregor> oerjan: I really wish I KNEW why it keeps crashing X_X
04:13:46 <Gregor> calamari: I didn't use it super-extensively, but no.
04:13:52 <oerjan> oh and egobot is not here
04:14:06 -!- HackEgo has quit (Remote host closed the connection).
04:14:09 -!- HackEgo has joined.
04:14:11 -!- EgoBot has joined.
04:14:20 <calamari> I guess I suck then.. what else is new? :)
04:14:37 <Gregor> calamari: I had this crazy dynamic unionfs that would union together directory structures based on environment variables in the process reading the FS.
04:15:15 <Gregor> It was stable but crazy-slow.
04:15:15 <oerjan> `addquote <coppro> we'd care about a turing-complete pencil
04:15:18 <HackEgo> 178|<coppro> we'd care about a turing-complete pencil
04:15:24 <calamari> I think it'd be cool to provide a virtual fat32 filesystem on the fly
04:15:38 <Gregor> I would be absolutely shocked if that hasn't already been done.
04:15:57 <Gregor> Ohwait ... what do you mean by "virtual" in this context :P
04:15:58 <calamari> that way android can have his lame fat32 and I can have a better fs underneath
04:16:26 <Gregor> Oh, you want to virtualize the limitations of FAT32 essentially?
04:17:17 <calamari> well my microsd cards keep failing
04:17:57 <calamari> and of course every time it fails I lose the whole damn thing.. so I was thinking I could have a more robust filesystem underneath
04:18:21 <calamari> so I guess it's really two filesystems I'd need to design
04:18:48 <coppro> you could use ext2 and install the filesystem in Windows
04:18:56 <calamari> the fake fat32 one, and another one with redundant metadata
04:20:11 <calamari> although I have to say scandisk didn't do that bad a job on this last crash
04:20:12 <coppro> Windows does have installable file systems, contrary to popular belief
04:20:25 <calamari> windows isn't even a factor here
04:20:35 <coppro> why do you need FAT32 then?
04:20:46 <calamari> because android apps assume fat32
04:21:58 <calamari> not sure, but even when you put in an sdcard if it's not fat32 it tells you it needs to format it
04:22:18 <calamari> maybe it'd be easier just to fix android
04:23:46 <calamari> I think it'd be cool for a filesystem to expose its metadata to the filesystem too.. and all metadata should be ascii
04:25:56 <calamari> actually.. this has been done a long time ago, in the opposite direction
04:26:23 <coppro> yeah, fixing Android seems easier; is your phone locked so that you can't change the installed version?
04:26:24 <calamari> you could layer a posix-compatible filesystem on top of fat
04:26:54 <calamari> oh what was it called.. totally obsolete tho, I think it was last in 2.4
04:27:48 <Gregor> That should be reimplemented in FUSE.
04:27:52 <Gregor> You could make it more general even.
04:28:04 <Gregor> Just "assume 8.3 and nothing else, give me a real FS"
04:28:40 <calamari> yeah so I'm really doing the reverse of umsdos
04:33:49 -!- augur has joined.
04:45:55 -!- augur has quit (Ping timeout: 245 seconds).
04:54:54 -!- oerjan has quit (Quit: Good night).
05:07:44 -!- augur has joined.
05:17:21 -!- lament has joined.
05:32:21 -!- lament has quit (Ping timeout: 260 seconds).
05:49:29 -!- Vegabondmx has quit (Quit: Vegabondmx).
05:55:19 -!- SevenInchBread has joined.
05:56:17 -!- CakeProphet has quit (Ping timeout: 276 seconds).
06:15:43 -!- calamari has quit (Quit: Leaving).
06:19:01 -!- lament has joined.
06:38:00 -!- augur has quit (Ping timeout: 245 seconds).
06:48:26 -!- relet has quit (Quit: Leaving.).
06:58:13 -!- FireFly has joined.
06:59:45 -!- augur has joined.
07:01:49 -!- tombom has joined.
07:08:29 -!- relet has joined.
07:09:27 -!- Oranjer has left (?).
07:11:14 -!- MigoMipo has joined.
07:16:57 -!- lament has quit (Ping timeout: 264 seconds).
07:36:21 -!- augur has quit (Remote host closed the connection).
07:36:36 -!- augur has joined.
07:40:05 -!- augur has quit (Remote host closed the connection).
07:46:11 -!- Rugxulo has joined.
07:51:36 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:19:16 -!- Sgeo_ has joined.
08:20:59 -!- Sgeo has quit (Ping timeout: 265 seconds).
08:23:46 -!- augur has joined.
08:27:37 -!- coppro has quit (Read error: Connection reset by peer).
08:30:14 -!- MizardX- has joined.
08:34:30 -!- MizardX has quit (Ping timeout: 276 seconds).
08:34:41 -!- MizardX- has changed nick to MizardX.
08:37:06 -!- lament has joined.
08:58:22 -!- FireFly has quit (Quit: swatted to death).
08:58:22 -!- MigoMipo has quit (Read error: Connection reset by peer).
08:59:42 -!- augur has quit (Remote host closed the connection).
08:59:53 -!- augur has joined.
09:09:22 -!- Rugxulo has left (?).
09:20:38 -!- lament has quit (Ping timeout: 240 seconds).
09:32:30 -!- mycrofti1 has changed nick to mycroftiv.
10:20:12 -!- Gracenotes has quit (Ping timeout: 264 seconds).
10:40:36 -!- SevenInchBread has changed nick to CakeProphet.
10:40:41 -!- CakeProphet has quit (Changing host).
10:40:41 -!- CakeProphet has joined.
10:54:45 <augur> whos got a hankerin' to do a little logic puzzle
10:55:09 -!- augur has quit (Remote host closed the connection).
10:55:21 -!- augur has joined.
10:57:13 <yiyus> augur: it depends on your definition of little
10:57:39 <augur> its not a huge problem, per se, nor does it require an actual solution
10:58:01 <augur> its logicocomputational
10:58:47 <augur> suppose you have some list
10:59:27 <augur> and you have some expression which is, in some unknown way, evaluated using that list
10:59:39 <augur> the expression is like so:
11:00:48 <augur> f(ord(g)), where f and g are unary functions that return booleans (e.g. "prime", "even", "red", whatever)
11:01:20 <augur> and ord is a higher order function that tells you some ordinality. e.g. "first", "second", etc.
11:01:38 <augur> so for instance maybe the list is [0,1,2,3,4,...] and the expression is prime(first(odd))
11:01:50 <augur> that is, "the first number that is odd is prime"
11:02:02 <augur> which in this case is not true, because 1 is odd but not prime
11:03:15 <augur> now suppose we have some other ordinal, first2
11:04:24 <augur> such that f(first2(g)) means that the 5th element of the list is the first element for which both f _and_ g are true
11:04:32 <augur> or maybe its the 10th element
11:04:51 <augur> or whatever. we might add in a second parameter for first2, to allow this. e.g. f(first2(5, g))
11:05:27 <augur> what do first and first2 have to be defined as for this to work?
11:06:01 <augur> now maybe function application works differently than normal. i leave it up to you to decide the details of the programming language/formal system. meaning you can define some crazy formal system that makes use of crazy crazy ideas. i dont care.
11:06:10 <augur> but how could you get this to work.
11:07:13 <yiyus> no way, the result of first2 is independent of f
11:07:45 <augur> well, like i said, you can use any sort of magic to make this work
11:07:55 <augur> so it doesnt *have* to be independent of f
11:08:12 <augur> if you can explain what the rule is for how the non-independence works
11:08:50 <augur> for instance (this might not work, i dont know)
11:09:01 <augur> if f (and g) are continuized functions
11:09:10 <augur> first2(5, g) might be the continuation of f
11:09:34 <augur> so f(first2(5, g)) is evaluated as first2(5,g)(\x -> ...)
11:09:53 <augur> because f passes into its continuation some uncontinuized version of f
11:10:57 <yiyus> ok, i think i understood the problem, but i don't think i can find a solution
11:11:07 <yiyus> surely, not before my lunch break
11:11:53 <augur> to make it even harder, and thus more interesting
11:13:13 <augur> can you define a single function first3 in such a way that it can infact behave in _both_ ways? that is to say, so that there is an ambiguity between whether it evaluates like first or first2
11:13:36 <augur> the ambiguity arising from the underlying formalism, that is
12:45:15 -!- Gregor has quit (Ping timeout: 252 seconds).
13:27:17 -!- FireFly has joined.
13:28:15 -!- asiekierka has joined.
13:28:29 <asiekierka> ugh, i need to make something for my Computers teacher
13:28:47 <asiekierka> either related to computers or for computers
13:46:13 -!- Vegabondmx has joined.
13:55:31 -!- KingOfKarlsruhe has joined.
14:29:14 -!- asiekierka has quit (Ping timeout: 272 seconds).
14:30:44 -!- Vegabondmx_ has joined.
14:31:18 -!- Vegabondmx has quit (Read error: Connection reset by peer).
14:31:19 -!- Vegabondmx_ has changed nick to Vegabondmx.
14:34:34 -!- BeholdMyGlory has joined.
14:45:31 -!- cpressey has joined.
14:46:35 -!- oerjan has joined.
14:52:21 -!- relet has quit (Quit: Leaving.).
14:53:56 <AnMaster> cpressey, anything happening with befunge-111?
14:54:28 * oerjan predicts a sudden number increment
14:59:19 <AnMaster> from some software changelog: "Bugs fixed in this release: [...] - Unsolicted crash"[sic]
14:59:59 <Ilari> Well, some stuff I have written is intentionally rigged to crash in some cases...
15:00:43 <cpressey> AnMaster: Not really (anything happening with Befunge-111). Maybe you're right, a simple addendum to "clarify" the 98 spec would be better. Easier, at least, and accomplish about the same thing.
15:02:06 <Ilari> When program is so toast that continuing would be worse than crashing, its better for it to crash.
15:03:46 <cpressey> Indeed, "crash" is an interesting concept to meditate upon.
15:07:22 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
15:07:26 <oerjan> to crash, or not to crash, that's #"¤11353NO CARRIER
15:18:38 <augur> AnMaster, oerjan, hey :D
15:38:17 -!- relet has joined.
15:54:06 -!- oerjan has quit (Quit: Later).
16:20:39 -!- cal153 has joined.
16:31:27 -!- cal153 has quit.
16:35:59 -!- lament has joined.
16:52:14 -!- fizzie` has changed nick to fizzie.
16:52:29 -!- lament has quit (Ping timeout: 240 seconds).
16:58:16 -!- cal153 has joined.
17:06:03 -!- cal153 has quit (Ping timeout: 276 seconds).
17:13:45 -!- tombom has joined.
17:16:43 -!- Gracenotes has joined.
17:33:05 -!- jabb has joined.
17:34:01 -!- cal153 has joined.
17:39:51 -!- augur has quit (Read error: Connection reset by peer).
17:40:14 -!- augur has joined.
18:00:44 -!- kar8nga has joined.
18:19:19 -!- augur has quit (Remote host closed the connection).
18:35:28 -!- MizardX- has joined.
18:36:40 -!- MizardX has quit (Read error: Connection reset by peer).
18:36:56 -!- MizardX- has changed nick to MizardX.
18:37:33 -!- iamcal has joined.
18:38:39 -!- Luyt_ has left (?).
18:38:48 -!- cal153 has quit (Ping timeout: 264 seconds).
18:50:51 -!- Phantom_Hoover has joined.
19:05:42 -!- Mathnerd314 has joined.
19:08:55 -!- CakeProphet has quit (Ping timeout: 245 seconds).
19:12:25 -!- CakeProphet has joined.
19:17:34 -!- kar8nga has quit.
19:18:14 -!- kar8nga has joined.
19:39:36 -!- CakeProphet has quit (Ping timeout: 265 seconds).
19:56:22 -!- CakeProphet has joined.
20:09:10 -!- MizardX has quit (Read error: Connection reset by peer).
20:09:18 -!- MizardX has joined.
20:09:21 -!- MizardX has quit (Changing host).
20:09:22 -!- MizardX has joined.
21:25:10 -!- dbc has quit (Quit: Seeeeeya).
21:51:29 -!- MosaSaur has joined.
22:00:03 <cpressey> I'm designing an imperative string-rewriting language.
22:05:34 <cpressey> Probably the same thing all my languages are used for. Whatever that is.
22:06:18 <MosaSaur> then it probably should, just to be safe
22:11:20 <cpressey> Well, it handles them in the sense that, if you insert two or more instances of the same kind of quote in the string, the behavior of reading or writing what's in between those quotes is undefined.
22:12:01 <cpressey> Which is the best sense of "handle", IMO.
22:16:57 <cpressey> No, not another L-system. I try to invent new things.
22:19:02 <cpressey> More specifically, I try to invent languages that sound impossible, or at least highly unlikely. Kind of like MC Escher illustrations, I guess.
22:19:19 <cpressey> Thus, imperative string-rewriting.
22:22:01 <MosaSaur> so L-systems are a subset of imperative string rewriting, but you want another subset
22:22:37 <cpressey> Well, I have yet to see an L-system that I would describe as "imperative".
22:24:18 -!- dbc has joined.
22:24:20 -!- dbc has left (?).
22:26:36 <cpressey> So is graph reduction. Therefore Haskell is imperative!
22:29:21 <cpressey> cheater99: At the core, I think it's because she's intelligent.
22:34:53 <MosaSaur> I suppose lisp is better for creating languages
22:36:25 -!- Phantom_Hoover has quit (Quit: Leaving).
22:44:45 -!- augur has joined.
22:45:09 -!- Oranjer has joined.
22:52:09 -!- MosaSaur has quit (Ping timeout: 240 seconds).
22:52:20 -!- MosaSaur1 has joined.
22:53:22 -!- augur has quit (Ping timeout: 260 seconds).
22:58:14 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:02:41 -!- oerjan has joined.
23:06:20 -!- Oranjer has left (?).
23:06:45 -!- MosaSaur1 has left (?).
23:18:43 <cheater99> i currently don't know what an AST really is
23:19:17 <cheater99> how difficult would it be for me to learn what an AST is and write something that manipulates a cobol AST?
23:19:38 <cheater99> i used an acronym to separate out the people who don't know what it stands for, you passed the test oerjan - welcome to the next level
23:19:50 <cpressey> cheater99: Did you ever diagram sentences in grade school?
23:20:31 <cpressey> I don't think there is much more. Not very much, anyway.
23:20:34 <cheater99> i also understand it has to do with those funny expression syntax formats like what i get in, say, the python manual.
23:20:43 <oerjan> it's a tree that contains the structured data of parsed code (or other language)
23:20:51 <oerjan> cheater99: backus/naur form?
23:22:03 <oerjan> that's most likely what that python manual uses, or some variant
23:22:14 <cheater99> if_stmt ::= "if" expression ":" suite
23:22:26 <cpressey> Yeah, that's an extended version of BNF.
23:22:27 <oerjan> it was invented for Algol, i think, and has been used for lots of languages since
23:22:50 <cheater99> the plan is to convert COBOL to PHP
23:23:26 <oerjan> cheater99: btw COBOL was invented _before_ BNF, i think, so it might actually be awkward to parse that way
23:23:28 <cheater99> it's like changing from one very bad thing to another, i know
23:23:33 <cpressey> Learning to read BNF is useful, but not quite the same as building/using an AST, although it's not hard to relate them
23:23:46 <cheater99> i know how to read those things (BNF)
23:24:11 <oerjan> however there are newer standards for COBOL, so i wouldn't be surprised if they've made a BNF for it later
23:24:14 <cheater99> i got hardcore with DTD's at some point, they're basically a masochistic version of tht
23:24:24 <oerjan> (assuming it fits into BNF at all)
23:24:38 <cheater99> so there's this lex-pass thing for haskell
23:24:49 <cheater99> it allows manipulating PHP on ast level
23:25:04 <cpressey> An English description of an AST that goes with the BNF you posted might look like: An IfNode contains an ExprNode called "then_cond" and SuiteNode called "then_suite" and a list of ExprNodes called "elifs" and ...
23:25:08 <oerjan> cheater99: yeah XML is like a language half-way turned into AST at the outset
23:25:09 <cheater99> would it make sense to extract ast from cobol, and try to convert it to the php ast?
23:25:47 <cpressey> So really, it's just a data structure that you define how you want, as long as it can store your parsed program in a way that makes sense for what you want to do with it.
23:25:58 <oerjan> however it's not given that the ast's of cobol and php will match nicely
23:26:20 <cheater99> doesn't cobol translate to C directly
23:26:31 <cheater99> and php is just a wrapper around C
23:26:37 <cpressey> Eww... http://www.cs.vu.nl/grammarware/browsable/cobol/
23:26:52 <cheater99> i hadn't written 1 line of cobol in my life
23:26:53 <oerjan> cheater99: um C is much newer than COBOL. there is probably a compiler from COBOL to C though
23:27:14 <cheater99> oerjan, i know, but i still heard that cobol can translate to c fairly easily
23:27:15 <oerjan> (well somewhat newer, at least)
23:27:38 -!- tombom has quit (Quit: Leaving).
23:28:16 <oerjan> cheater99: that may be, if cobol doesn't use any new-fangled stuff that C wasn't designed to have (and given the relative ages, it probably doesn't)
23:30:43 <oerjan> cheater99: php being a wrapper around C doesn't mean C translates easily to PHP though
23:30:53 <oerjan> more like the opposite, if any
23:31:24 <cheater99> but i wouldn't expect cobol to do much more than the subset of c that php can perform
23:31:32 <oerjan> however i guess php (which i don't really know) has a C-descendant syntax
23:31:36 -!- FireFly has quit (Quit: swatted to death).
23:32:28 <cheater99> jesus http://99-bottles-of-beer.net/language-cobol-908.html
23:32:38 <oerjan> cheater99: COBOL is pretty big on describing data formats, iirc (and that's one of the few things i know about COBOL)
23:33:04 <cpressey> I leave you with someone else's opinion on the matter: http://sneakydave.com/wp/2009/08/12/php-itself-isnt-that-much-different-than-cobol/
23:33:11 -!- cpressey has quit (Quit: Leaving.).
23:34:05 <cheater99> oerjan, then it's like php. php is also pretty big on data formats.
23:35:17 <oerjan> it's possible COBOL is big on describing _ancient_ formats, though
23:35:30 <cheater99> more like, class-based data formats
23:35:44 <cheater99> almost sorta like 'shitty version of java' data formats
23:37:02 <cheater99> so how difficult is it to learn that ast stuff
23:39:15 <oerjan> i don't know exactly how _i_ learned it, so...
23:39:43 <cheater99> there should be tutorials for that crap on the net
23:40:07 <oerjan> well an example of an interpreter implemented using it might be nice...
23:40:36 <oerjan> hm i guess this AST stuff must be among the things mentioned in that famous "how to make compilers" book that i've never read
23:41:46 <oerjan> http://en.wikipedia.org/wiki/Dragon_Book_(computer_science)
23:44:26 <oerjan> AST's would be the intermediate step between the "Syntax analysis" and "Syntax-directed translation" steps in that list
23:45:07 <oerjan> well ASTs would probably useful for everything after as well
23:47:31 <cheater99> or is it just pure, data-less syntax structure?
23:47:52 <oerjan> it definitely holds all the data you need for representing the code
23:50:07 <cheater99> that's pretty cool. i'm gonna go take a shower now.
23:50:08 <cheater99> thanks for walking me through that oerjan <3
23:50:08 <cheater99> i'm asking because i found out you can easily put esc on the caps lock key in gnome
23:50:35 <oerjan> never bothered to remap any keys though
23:51:37 <oerjan> cheater99: SICP (which i've also not read, but it's available online) might also be good i guess.
23:52:46 <cheater99> it'll totally change everything for you
23:52:49 <oerjan> http://en.wikipedia.org/wiki/Wizard_book
23:53:19 <cheater99> did you know esc was where tab is now on the space cadet keyboard (for which vi was developed)?
23:53:41 <cheater99> esc was on the space cadet keyboard where tab is now on normal keyboards
23:53:48 <cheater99> but tab is still useful, and caps is even more useful
23:53:50 <oerjan> one of the reasons why lisp/scheme is so powerful is that its syntax is so simple that it almost _is_ its own AST.
23:53:54 <cheater99> the place caps is now used to be ctrl, i think
23:54:27 <cheater99> i have no idea what it means to be your own ast
23:54:58 <oerjan> cheater99: in scheme, the program is represented as a tree of nested lists
23:56:06 <oerjan> (define (fac n) (if (eqv n 1) 1 (* n (fac (- n 1))))), or something like that
23:56:18 <oerjan> (for making a factorial function)
23:56:43 <oerjan> and that nested list essentially _is_ the AST of the function definition
23:57:31 <oerjan> the lisp/scheme macro systems therefore can work directly on the AST, rewriting stuff in a structured manner.
23:59:36 -!- leBMD has joined.