主题:【原创】随便聊聊算法、应用数学和数学 -- hokmen
谈到一般均衡怎能漏了cole Normale de Musique de Paris的Gérard Debreu ,嘿嘿
这个东西好像是MMIX的simulator
顺便崇拜您一下,竟然有写MMIX程序的欲望,我看一会儿就看不下去了
Debreu也是先学数学,再转经济。
好久不见,近来可好?
Doob兄别来无恙?
俺在德国的Uni. Tübingen. 当时这个mmix搞得所有同学当时是怨声载道,苦不堪言,图书馆一共就两本参考书快被抢疯了。网上有关资料相对很少,中文的就更不好找了。国内似乎清华也是学这个。
给您贴一个当时教授给的自动安装脚本。
# Wie man einen MMIX-Cross-Compiler hochzieht
# (OK, 04.03.2006)
# Hier wird alles hin installiert! Bitte anpassen
export MMIXHOME=/gpp
if test "$MMIXHOME" = "aendern" ; then
echo "Bitte Installationspfad anpassen!"
exit
fi
# Ueberpruefen ob g++, cweb und wget im Pfad sind
if test ! `which g++`; then echo "g++ ist nicht im Pfad!"; exit; fi
if test ! `which cweave`; then echo "cweave ist nicht im Pfad!"; exit; fi
if test ! `which wget`; then echo "wget ist nicht im Pfad!"; exit; fi
# Zutaten:
# - gcc
# - binutils
# - mmix
# - newlib
GCC=gcc-4.0.2.tar.bz2
BINUTILS=binutils-2.16.1.tar.gz
MMIX=mmix-20050922.tar.gz
NEWLIB=newlib-1.14.0.tar.gz
# Man lege ein Verzeichnis an, das den MMIX-Kram aufnehmen soll:
#
export MAKE="make"
export PATH=$MMIXHOME/bin:$PATH
mkdir -p $MMIXHOME
echo "Preparing to install MMIX tools in $MMIXHOME"
mkdir -p $MMIXHOME/bin
mkdir -p $MMIXHOME/src
cd $MMIXHOME/src
# Zuerst besorgen wir alle Pakete per wget:
#
echo ""
echo " --- Download --- "
echo "Falls das Skript beim Download abbricht, mu wahrscheinlich ein Proxy genutzt werden."
echo "Setzen sie dazu die Umgebungsvaraiblen 'http_proxy' und 'ftp_proxy'!"
echo ""
echo "Downloading $MMIX..."
#wget -q http://www-cs-faculty.stanford.edu/~knuth/programs/$MMIX || exit
echo "Downloading $BINUTILS..."
#wget -q http://ftp.gnu.org/gnu/binutils/$BINUTILS || exit
echo "Downloading $GCC..."
#wget -q http://ftp.gnu.org/gnu/gcc/gcc-4.0.2/$GCC || exit
echo "Downloading $NEWLIB..."
#wget -q ftp://sources.redhat.com/pub/newlib/$NEWLIB || exit
# Dann bauen wir die MMIX-Tools.
# Dummerweise ist das TAR-Archiv etwas ungeschickt verpackt. Daher zuerst
# ein Verzeichnis anlegen und dort auspacken, sonst hat man den ganzen Klump
# in $MMIXHOME/src liegen.
echo "Unpacking MMIX ware..."
mkdir mmix-ware
cd mmix-ware
tar zxf ../$MMIX || exit
# Dann bauen und installieren wir alle notwendigen Werkzeuge und kopieren
# sie an die richtige Stelle:
# (CWEB muss dafuer installiert und im Pfad sein!)
echo "Building MMIX ware..."
$MAKE all || exit
cp mmixal mmix mmotype mmmix $MMIXHOME/bin
# Dann bauen wir die binutils und einen Cross-GCC:
# Man packe GCC und binutils aus und lege passende
# build-Verzeichnisse jeweils daneben:
cd $MMIXHOME/src
echo "Unpacking GCC..."
tar jxf $GCC || exit
echo "Unpacking binutils..."
tar zxf $BINUTILS || exit
mkdir build-gcc build-binutils
# Man konfiguriere, baue und installiere die binutils fuer mmix:
echo "Building binutils..."
cd build-binutils
../binutils-*/configure --target=mmix --prefix=$MMIXHOME --disable-nls || exit
$MAKE all install || exit
# Man tue das selbe fuer den gcc:
echo "Building binutils..."
cd ../build-gcc
../gcc-*/configure --target=mmix --prefix=$MMIXHOME --disable-nls --enable-languages=c,c++ || exit
$MAKE all-gcc install-gcc || exit
# Dann brauchen wir noch die newlib.
# Die packen wir aus, konfigurieren und bauen sie:
cd $MMIXHOME/src
echo "Unpacking newlib..."
tar zxf $NEWLIB || exit
mkdir build-newlib
echo "Building newlib..."
cd build-newlib
../newlib*/configure --target=mmix --prefix=$MMIXHOME || exit
$MAKE all install || exit
# Fertig.
echo ""
echo ""
echo "Ready."
这,这个太强悍了
收藏,太谢谢了
我没那么强,只是觉得光看记忆不住
我都是肉体记忆,哈哈
是不是Minix阿? 就是那个Unix的缩小版本,给大学生教操作系统用的,似乎是一个教授的作品.
我先留个脚印,以后回来研究一下什么是Hash,我最近老是接触到Hash/SHA1之类的东西,人家居然是用汇编实现的,佩服一个.
如果高等微观经济学里有的话,大本的书里也最少应该有所涉及
实际上经济学的问题是很多原理根本不加证明,比如边际收益递减(其实现实生活中不一定)边际效用递减(更加的扯淡,效用本来是主观的)