# HG changeset patch # User Christian Urban # Date 1506455576 -3600 # Node ID 4e15afaadde0bee2e91692c65f82c1c9f8d18438 # Parent 75cb87ade00f0d7c79529837d5de42d907576a44 updated diff -r 75cb87ade00f -r 4e15afaadde0 bsc-projects-17.html --- a/bsc-projects-17.html Tue Sep 26 20:49:50 2017 +0100 +++ b/bsc-projects-17.html Tue Sep 26 20:52:56 2017 +0100 @@ -78,9 +78,9 @@ innocently looking regular expression a?{28}a{28} and match it, say, against the string aaaaaaaaaaaaaaaaaaaaaaaaaaaa (that is 28 as), you will soon notice that your CPU usage goes to 100%. In fact, Python and Ruby need approximately 30 seconds of hard work for matching this string. You can try it for yourself: - catastrophic.py (Python version) and - catastrophic.rb - (Ruby version). Here is a similar problem in Java: catastrophic.java + catastrophic.py (Python version) and + catastrophic.rb + (Ruby version). Here is a similar problem in Java: catastrophic.java

@@ -101,7 +101,7 @@

On a rainy afternoon, I implemented - this + this regular expression matcher in Scala. It is not as fast as the official one in Scala, but it can match up to 11,000 as in less than 5 seconds without raising any exception (remember Python and Ruby both need nearly 30 seconds to process 28(!) as, and Scala's @@ -183,7 +183,7 @@ paper (also described here). My code, written in Scala, of this compiler is - here. + here. The compiler can deal with simple programs involving natural numbers, such as Fibonacci numbers or factorial (but it can be easily extended - that is not the point).

@@ -545,7 +545,7 @@

-Time-stamp: <- 2017-09-26 11:16:35 by Christian Urban> +Time-stamp: <- 2017-09-26 20:52:25 by Christian Urban> [Validate this page.]