Giter Site home page Giter Site logo

artemohanjanyan / university Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 1.0 5.87 MB

Single repository for university projects

C++ 59.07% Pascal 0.05% Shell 0.25% Haskell 4.92% D 0.55% CMake 0.18% Assembly 0.85% Java 26.72% Clojure 0.31% JavaScript 1.03% HTML 0.11% Gnuplot 0.01% Makefile 0.11% Idris 0.65% TeX 2.72% Kotlin 2.28% Mathematica 0.07% Vim Script 0.02% Python 0.04% Perl 0.05%
university java programming-paradigms haskell c-plus-plus

university's Introduction

University projects

Computer Technology Department, ITMO University, 2014-present.

2 term

  • C++. Big initeger arithmetics library and custom std::list<std::string> implementation from exam.
  • Programming paradigms. Implementation of arithmetic expression parsing and evaluation in Java, JavaScript, and Clojure using different programming paradigms.

3 term

  • Mathematical logic. Formal proof validators, deduction theorem, a proof generator for tautologies, and generator of a+b proof in formal arithmetics implemented in Haskell.
  • C++. Custom implementation of optional and proxy server, written in modern C++. Latter includes low-level RAII wrappers for Linux networking interface for C, asynchronous I/O API backed by epoll, basic incremental HTTP request parser, multithreaded DNS-resolver for lower latency, and colorful log.
  • Android course project. Android application for playing chess via Bluetooth. Team project.

4 term

  • Type Theory course. Lambda calculus homework includes normalization algorithm and type inference algorithms for simply typed lambda calculus and Hindley-Milner type system, all implemented in Haskell. Idris code includes various formal proofs based on dependent types and Curry-Howard correspondence. Course notes in LaTeX (in Russian) which are worth many sleepless nights spent on them.
  • Repository for Operating Systems course starring rshd server in (almost) pure C.
  • Java technologies. Deeper Java course with homework covering different parts of Java API, including concurrency (HW 8 "web crawler") and reflection API (HW 3 "implementor", an application which generates dummy implementations of provided classes and interfaces).

5 term

6 term

university's People

Contributors

artemohanjanyan avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

kowalski1337

university's Issues

Proxy

  • Add registration to epoll_registration constructor (or maybe not?).
  • Add on_connected helper function.
  • eventfd
  • resolver
  • timer

tt:hw2

Fix crash on \x . x x

C++ TODO

  • Add epoll pointer to epoll_registration and default on_close.

Normalization doesn't work

$ normalize
(\a.\x.a) x
\x'.x
$ normalize
(\a.\x.\x.a) x
normalize: src/Simple/Reduction.hs:82:5-70: Irrefutable pattern failed for pattern Right newExpr

At first sight the problem is in rename' function:

rename' act dict (Lambda var expr)
        | Map.member var dict = Lambda newVar $ rename' (Map.insert var newVar act) (Map.delete var dict) expr
        | Map.member var act  = Lambda var    $ rename' (Map.delete var act)        dict                  expr
        | otherwise           = Lambda var    $ rename' act                         dict                  expr

Seems, you should not delete bound variable from dict, or should replace it with actual value on second stage of the pattern matching above.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.